在solr中使用或在方面查询
我有个问题。我在solr中有3个过滤器。我们把它们称为过滤器A、B和C。我的要求是过滤器A是强制性的,B和C是可选的。如果我在过滤器之间写入and“&”,那么所有3个都将成为必填项在solr中使用或在方面查询,solr,solr4,facets,Solr,Solr4,Facets,我有个问题。我在solr中有3个过滤器。我们把它们称为过滤器A、B和C。我的要求是过滤器A是强制性的,B和C是可选的。如果我在过滤器之间写入and“&”,那么所有3个都将成为必填项 http://127.0.0.1:8983/solr/core1/select?q=*:*&fq=A:a_value&fq=B:b_value&fq=C:c_value&wt=xml&indent=true 它们之间的使用或“或”将使过滤器成为非强制性的 http://127
http://127.0.0.1:8983/solr/core1/select?q=*:*&fq=A:a_value&fq=B:b_value&fq=C:c_value&wt=xml&indent=true
它们之间的使用或“或”将使过滤器成为非强制性的
http://127.0.0.1:8983/solr/core1/select?q=*:*&fq=A:a_value or B:b_value or C:c_value&wt=xml&indent=true
我该如何处理这种情况如果我正确理解了您的问题,您需要确保您的文档符合筛选器A和筛选器B或C 如果是这种情况,您可以使用以下筛选器查询
fq=(A:a_value AND (B:b_value OR C:c_value))
确保您的AND和OR大写。如果B和C是可选的,为什么要使用FQ FQ(筛选器查询)在实际筛选时非常有用,您需要记住它不会计入分数 所以1。实际上,您希望在Q中使用它(这样,当文档与B/C匹配时,它将反映在分数中) 或2。如果B/C不应该影响分数,为什么你要把它放进去 在案例1中,查询可能如下所示:
(A:a_value AND ((B:b_value OR -B:b_value) OR (C:c_value OR -C:c_value)))
您可能需要调整*-B:B_值*,因为我不是100%确定