0

Lucene.Net IndexSearch.Searchメソッドを使用しています。フィルターとソートを渡していますが、奇妙な動作が見られます。ロジックは、パフォーマンス上の理由から、並べ替えの前にフィルタリングが行われることを示していますが、確認したかったのです。

4

1 に答える 1

3

フィルターして並べ替えます。

Lucene での並べ替えは、ドキュメントを順番にキューに集めることによって行われます。上位 X 個のドキュメントが保持されます。ここで、X は要求した結果の最大数です。コレクターは、Filterまたは のいずれかに一致しないドキュメントを比較しませんQuery

並べ替えを指定しない場合、スコアを使用してドキュメントをキューに優先順位付けします。並べ替えを使用する場合は、要求した並べ替えのコンパレータが代わりに使用されます。

さらに興味がある場合はCollector、ソース コードのさまざまなクラスを見てください。Collect() メソッドには、必要な情報がすべて含まれています。

于 2012-12-14T15:05:09.187 に答える