我目前正在实施Solr解决方案,用户可以选择各种选项来搜索产品。我现在可以使用所有这些选项并将它们组合成一个长的查询,或者我可以使用获取所有内容的查询(*:*)并对其应用查询过滤器。
常规查询:
q=color:blue AND price:500
使用过滤查询进行查询:
q=*:*&fq=color:blue&fq=price:500
结果完全一样。那么区别是什么呢?我什么时候应该使用其中一种?
答案 0 :(得分:4)
过滤查询不会影响文档的分数。 此外,它们在缓存中很有用,使用fq指定的查询独立于主查询进行缓存 Document for solr query parameters
答案 1 :(得分:0)
通常在任何生产系统中,您都会使用不支持前一种语法的Dismax
请求处理程序的变体,因此在这种情况下必须使用过滤器查询执行过滤。