我正在使用Zend_Search_Lucene作爲獨立組件的法語網站的搜索引擎。在Windows上我的本地網絡服務器(WAMP)上一切正常,但帶有重音詞(如:géographie)的搜索在我的生產服務器(在Unix上運行)上不起作用。Zend_lucene用口音搜索
我在Linux上生成了索引,重音字被正確索引。
See a screenshot of my generated index here
我試圖迫使編碼與分析儀的參數,轉換的查詢字符串函數utf8_encode。 但我仍然無法得到它的作品。
我打電話Lucene的這些參數:
Zend_Search_Lucene_Search_QueryParser::setDefaultOperator(Zend_Search_Lucene_Search_QueryParser::B_AND);
Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive());
Zend_Search_Lucene_Search_QueryParser::setDefaultEncoding('utf-8');
$index = Zend_Search_Lucene::open($cheminIndexes);
$resultats = $index->find(Zend_Search_Lucene_Search_QueryParser::parse(utf8_encode($_POST['recherche'])));
此代碼返回所有非重音字,但它這樣做,雖然這些詞語索引沒有返回我的任何話的重音。 這很令人沮喪,因爲我不明白它爲什麼它在Windows上工作,我覺得我錯過了一層編碼的地方,但我無法在谷歌上找到任何有關此信息。
感謝,我發現,你可以通過編碼作爲參數解析函數: $ resultats = $ index-> find(Zend_Search_Lucene_Search_QueryParser :: parse($ _ POST ['recherche'],'utf-8')); 它也有效。 – DoesNotCompute