我正在尝试确定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。
发布于 2012-12-28 12:37:00
在current Lucene.Net中,筛选器在查询执行后应用。因此,过滤器排除的文档仍将根据查询条件进行评分,然后从结果集中删除。
这在4.x中发生了变化,有关更多信息,请参阅Lucene-1536。
现在你可能会问,使用过滤器值得吗?答案是肯定的,如果您缓存过滤器以供重用。
https://stackoverflow.com/questions/14059137
复制相似问题