Solr/Lucene:常规查询和过滤查询之间有什么区别

Solr/Lucene:常规查询和过滤查询之间有什么区别,lucene,solr,Lucene,Solr,我目前正在实施一个Solr解决方案,用户可以选择各种选项来搜索产品。现在,我可以将所有这些选项合并到一个长查询中,也可以使用一个获取所有内容(*::*)并对其应用查询过滤器的查询 常规查询: q=color:blue AND price:500 使用筛选器查询进行查询: q=*:*&fq=color:blue&fq=price:500 结果完全一样。那么有什么区别呢?什么时候应该使用一个或另一个?通常,在任何生产系统中,您都会使用不支持前一种语法的Dismax请求处理程序的变

我目前正在实施一个Solr解决方案,用户可以选择各种选项来搜索产品。现在,我可以将所有这些选项合并到一个长查询中,也可以使用一个获取所有内容(*::*)并对其应用查询过滤器的查询

常规查询:

q=color:blue AND price:500
使用筛选器查询进行查询:

q=*:*&fq=color:blue&fq=price:500

结果完全一样。那么有什么区别呢?什么时候应该使用一个或另一个?

通常,在任何生产系统中,您都会使用不支持前一种语法的
Dismax
请求处理程序的变体,因此在这种情况下,必须使用过滤器查询执行过滤

筛选查询不会影响文档的分数。 此外,它们在缓存中很有用,使用fq指定的查询独立于主查询进行缓存