Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我们正在使用 Lucene.Net IndexSearch.Search方法。我们正在传递一个过滤器和一个排序,但我们看到了一些奇怪的行为。逻辑告诉我,出于性能原因,过滤将在排序之前完成,但想确保。
过滤然后排序。
Lucene 中的排序是通过将文档按顺序收集到队列中来完成的。它保留前 X 个文档,其中 X 是您要求的最大结果数。Filter收集者不会比较与或不匹配的文件Query。
Filter
Query
当您不指定排序时,分数用于将文档优先排序到队列中,如果您使用排序,则使用您要求的排序的比较器。
如果您更好奇,请查看Collector源代码中的不同类,Collect() 方法包含您想要的所有信息。
Collector