对于我的实现,我以前使用solr过滤器查询使用solrj,如。
fq=content_source:SharePoint+AND+AuthenticatedUserName=lalit
字符串
但是现在我使用lucene boolean query,query是这样构建的。
content_source=SharePoint&AuthenticatedUserName=lalit
型
我想澄清两个选项之间的区别,因为我认为布尔查询也是一种过滤查询。哪一个应该在哪些场景中使用。
最后,哪一个更有效率?
1条答案
按热度按时间vwoqyblh1#
Filter Query用于确定哪些文档属于结果集,并且与结果集中的文档顺序无关。
查询将影响结果在结果集中的顺序。
例如,如果你搜索
name:finn site:stackoverflow
,你会得到任何带有name=finn
或site=stackoverflow
的文档,而那些共享这两个条件的文档排序在顶部。如果你将site
移动到过滤器查询,你会发现你只得到stackoverflow
的结果,在这些结果中,你只会看到finn
s。如果你搜索
(name:finn OR name:chris) site:stackoverflow
,你会得到大量的结果,finn
和chris
的结果浮在顶部。如果你再次将site
移动到过滤查询,你会得到只有site=stackoverflow
的结果,只有finn
或chris
的结果,而那些带有finn
* 和 *chris
的将浮动到顶部。