2010-07-27 15 views
6

मैं इस परिदृश्य पर बंद खींचने के लिए Zend_Search_Lucene में एक रास्ता खोजने के लिए कोशिश कर रहा हूँ:Zend खोजें Lucene और उच्चारण वर्ण

मान लीजिए कि हम एक उपयोगकर्ता है और उसका नाम Aicha (विशेष वर्ण ध्यान दें) में है। अगर मैं एचा के सूचकांक (i के विशेष व्युत्पन्न के बिना) खोज रहा हूं, तो मैं परिणाम में ऐचा को वापस लौटना चाहता हूं।

क्या इस काम को करने के लिए अनुक्रमण या खोज करते समय मुझे कुछ खास करने की ज़रूरत है? मैंने इंडेक्सिंग से पहले डेटा को सामान्य करने के बारे में समाधान पढ़े हैं, सामान्य वर्णों वाले सभी विशेष पात्रों को प्रतिस्थापित कर दिया है, लेकिन मैं उस मार्ग पर नहीं जाऊंगा।

अग्रिम धन्यवाद, गैरी

उत्तर

3
 

function normalize ($string){ 
    $a = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ 
ßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕ'; 
    $b = 'aaaaaaaceeeeiiiidnoooooouuuuy 
bsaaaaaaaceeeeiiiidnoooooouuuyybyRr'; 
    $string = utf8_decode($string); 
    $string = strtr($string, utf8_decode($a), $b); 
    $string = strtolower($string); 
    return utf8_encode($string); 
} 
$passToIndexer = normalize(" Aïcha "); 
 

जबकि सूचकांक बनाने, यह का अनुक्रमण के बिना वास्तविक मूल्य की दुकान = इस कार्यों उत्पादन का उपयोग करने की कोशिश) आशा है कि यह मदद करता है, मैं सच कहूं लगता है कि किसी अन्य तरीके से है न ।

संबंधित मुद्दे