Zend_Search_Lucene をスタンドアロン コンポーネントとして使用して、フランスの Web サイトの検索エンジンに取り組んでいます。Windows 上のローカル Web サーバー (WAMP) ではすべてがうまく機能しますが、アクセント付きの単語 (geographie など) を使用した検索は、実稼働サーバー (Unix で実行されている) では機能しません。
Linux でインデックスを生成しました。アクセント付きの単語は正しくインデックス化されています。
ここで生成されたインデックスのスクリーンショットを参照してください
アナライザーのパラメーターでエンコーディングを強制し、クエリ文字列を 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で動作するのか理解できないのでイライラします.どこかでエンコーディングのレイヤーが欠けているように感じますが、Googleでこれに関する情報を見つけることができません.