1

Lucene で検索アプリケーションを開発しました。基本検索を作成しました。基本的に、私のアプリは次のように動作します。

  • 私のインデックスには多くのフィールドがあります。(40前後)
  • ユーザーは複数のフィールドにクエリを入力できます。例: +NAME:John +SURNAME:Doe
  • クエリには、? などのワイルドカードを含めることができます。および *例: +NAME:J?hn +SURNAME:Do*
  • クエリにはファジーを含めることもできます。例: +NAME:Jahn~0.5

ここで、どのフィールドに検索用語が含まれているかを調べたいと思います。ワイルドカードとファジーを使用しているため、文字列の比較だけではできません。どうすればいいですか?

4

1 に答える 1

0

デバッグ目的で必要な場合は、IndexSearcher.explainを使用できます。

それ以外の場合、この問題は強調表示のように見えるため、次の方法で一致したフィールドを見つけることができるはずです。

  • ドキュメントを再分析し、
  • またはその用語ベクトルを使用します。
于 2012-06-20T23:08:50.007 に答える