Solr 过滤查询与布尔查询?

问题描述 投票:0回答:1

对于我的实现,我之前使用 solr 过滤器查询,例如使用 solrj。

fq=content_source:SharePoint+AND+AuthenticatedUserName=lalit

但是现在当我使用 lucene 布尔查询时,查询是这样构建的。

content_source=SharePoint&AuthenticatedUserName=lalit

我想澄清两个选项之间的区别,因为我认为布尔查询也是一种过滤查询。哪种场景应该使用哪种。

最后哪一个使用起来性能更好?

solr lucene
1个回答
0
投票

过滤查询用于确定哪些文档属于结果集中,与该结果集中的文档顺序无关。

查询会影响结果在结果集中的顺序。

如果您搜索

name:finn site:stackoverflow
,您将获得带有
name=finn
site=stackoverflow
的所有文档,并且共享这两个条件的文档均排在顶部。相反,如果您将
site
移至筛选查询,您会发现您 获得了
stackoverflow
的结果,并且在这些结果中,您只会看到
finn

再进一步说,如果您搜索

(name:finn OR name:chris) site:stackoverflow
,您会得到大量结果,其中
finn
chris
结果浮在顶部。如果您再次将
site
移至筛选查询,您将仅获得包含
site=stackoverflow
的结果,并且仅包含
finn
chris
的结果,而带有
finn
chris
的结果将浮动到顶部。

© www.soinside.com 2019 - 2024. All rights reserved.