現在、サイト検索にLucene 2.1.0を使用していますが、難しい問題が発生しました。ターゲット検索中にインデックスフィールドの1つが無視されています。インデックス内のドキュメントにフィールドを追加するためのコードは次のとおりです。
// Add market_local to index
contactDocument.add(
new Field(
"market_local"
, StringUtils.objectToString(
currClip.get(
"market_local"
)
)
, Field.Store.YES
, Field.Index.UN_TOKENIZED
)
);
インデックスに対してクエリ(*)を実行すると、次の結果が返されます。
Result 1:
title: Foo Bar
market_local: Local
Result 2:
title: Bar Foo
market_local: National
ターゲットクエリの実行:
+( market_local:Local )
結果は見つかりません。
私はこれが非常に具体的な質問であることを認識しています。私はLuceneの初心者なので、この問題のデバッグを開始する場所に関する情報を取得しようとしています。
アップデート
Lukeをインストールし、最新のインデックスをチェックしています...フィールドmarket_localは検索で利用できるので、次のように実行すると次のようになります。
market_local:Local
検索は正しく機能します(Lukeで)。ここでAnalyzerコードについて説明しますが、検索アプリケーションがLucene 2.1.0を使用し、最新バージョンのLukeが2.3.0を使用しているという事実まで、この問題を解決する方法はありますか?