2

Lucene.net フィルターが検索スペースを制限するのか、フィルターによって返されたドキュメントに基づいて検索一致からドキュメントを除外するのかを判断しようとしています。つまり、フィルターがドキュメント A、B、および C を許可し、D と E を許可せず、ユーザーのクエリが B、C、および D に一致する場合、フィルターは D がクエリの一致と見なされることさえ防止しますか、またはクエリは一致には B、C、および D が含まれ、クエリの実行後にフィルターによって D が除外されるだけですか? この最前線のどこにも決定的な情報は見つかりません。最も近いのは、1 年半前の投稿http://java.dzone.com/news/fast-lucene-search-filtersです。これは、クエリの一致が返された後にフィルターが適用されることを示唆しています。Lucene for Java ではなく、現在のバージョンの Lucene.net を使用していることに注意してください。

4

1 に答える 1

1

現在のLucene.Netでは、フィルターはクエリの実行後に適用されます。したがって、フィルターによって除外されたドキュメントは、クエリ基準に従ってスコアリングされ、結果セットから削除されます。

これは4.xで変更されています。詳細については、 Lucene-1536を参照してください。

今、あなたは尋ねるかもしれませんが、フィルターを使用する価値はありますか?フィルタをキャッシュして再利用する場合、答えは「はい」です。

于 2012-12-28T04:36:59.797 に答える