Lucene.net过滤器:他们是否限制初始搜索空间或仅从搜索结果中排除过滤后的文档?

时间:2012-12-27 18:06:51

标签: lucene lucene.net

我正在尝试确定Lucene.net过滤器是否限制搜索空间,或者仅根据过滤器返回的文档从搜索匹配项中排除文档。也就是说,如果过滤器允许文档A,B和C但不允许D和E以及用户的查询与B,C和D匹配,那么过滤器是否会阻止D甚至被视为查询匹配,或者查询是否匹配包括B,C和D,然后只有在查询运行后由过滤器排除D?我在这方面的任何地方都没有找到确凿的信息。我最接近的是一年半前的帖子:http://java.dzone.com/news/fast-lucene-search-filters表示在返回查询匹配后应用过滤器。请记住,我使用的是当前版本的Lucene.net,而不是Lucene for Java。

1 个答案:

答案 0 :(得分:1)

当前 Lucene.Net中,在执行查询后应用过滤器。因此,过滤器排除的文档仍会根据查询标准进行评分,然后从结果集中删除。

这在4.x中有所改变,有关更多信息,请参阅Lucene-1536

现在您可能会问,是否值得使用过滤器?答案是肯定的,如果你缓存过滤器以便重复使用。