1

Luceneベースの検索に問題があります。5つのフィールドを持つドキュメントをデザインしました。ドキュメントがaddressline1、addressline2、city、state、pinのAddressであると考えてください。検索を実行する場合は、すべてのフィールドで検索が実行されているため、ブール用語クエリを使用しています。したがって、結果が取得されます。今、私は応答だけでなく、一致するフィールドでも応答する必要があります。たとえば、都市フィールドが検索に一致する場合、都市が実際の検索応答とともに検索に一致するため、応答する必要があります。これに対応するためのluceneAPIはありますか?

4

1 に答える 1

2

AFAIKは、どのフィールドがクエリに一致したかを見つけるための簡単な解決策はありません。

オプションは次のとおりです。

  1. ヒット蛍光ペンを使用してみてください(一致が発生した場所はわかっていますが、大きな結果セットでは著しく遅くなります)
  2. IndexSearcherのexplainメソッドをいじる
  3. カスタムソリューションを構築する

蛍光ペンの経験と回避策の結果をヒットします。

私見では、Luceneはある時点でどのフィールドが一致したかを確実に知っているので、それを自分で実装するのは難しいことではありませんが、応答を構成するまでにその情報を不要な重みとして破棄します。
私はこのカスタムアプローチに出くわしました。

Lucene/Solr関連の最高の検索エンジンであるsearch-lucene.comでより多くのリソースを見つけてください。

于 2012-07-29T00:24:16.083 に答える