0
我們正在使用Lucene.Net IndexSearch.Search方法。我們正在通過篩選器和排序,但我們看到一些奇怪的行爲。邏輯告訴我,過濾將在排序之前完成,出於性能原因,但要確保。是否Lucene.Net排序,然後篩選或過濾然後排序?
我們正在使用Lucene.Net IndexSearch.Search方法。我們正在通過篩選器和排序,但我們看到一些奇怪的行爲。邏輯告訴我,過濾將在排序之前完成,出於性能原因,但要確保。是否Lucene.Net排序,然後篩選或過濾然後排序?
然後過濾排序。
在Lucene中排序是通過按順序將文檔收集到隊列中完成的。它保留前X個文檔,其中X是您要求的最大結果數。收藏者不會比較不符合Filter
或Query
的文檔。
當您不指定排序時,將使用優先級將文檔排入隊列,如果使用排序,則使用您請求排序的比較器來代替。
如果你更好奇,看一下源代碼中不同的Collector
類,Collect()方法有你想要的所有信息。