0
我们正在使用Lucene.Net IndexSearch.Search方法。我们正在通过筛选器和排序,但我们看到一些奇怪的行为。逻辑告诉我,过滤将在排序之前完成,出于性能原因,但要确保。是否Lucene.Net排序,然后筛选或过滤然后排序?
我们正在使用Lucene.Net IndexSearch.Search方法。我们正在通过筛选器和排序,但我们看到一些奇怪的行为。逻辑告诉我,过滤将在排序之前完成,出于性能原因,但要确保。是否Lucene.Net排序,然后筛选或过滤然后排序?
然后过滤排序。
在Lucene中排序是通过按顺序将文档收集到队列中完成的。它保留前X个文档,其中X是您要求的最大结果数。收藏者不会比较不符合Filter
或Query
的文档。
当您不指定排序时,将使用优先级将文档排入队列,如果使用排序,则使用您请求排序的比较器来代替。
如果你更好奇,看一下源代码中不同的Collector
类,Collect()方法有你想要的所有信息。