我有searchText,我想在几个特定字段中搜索它,而不是在schema.xml的所有默认字段中搜索它。 起初我尝试在solr admin http://localhost:8061/solr/admin/form.jsp中设置 查询字符串(参数“q”)到: “field1:val OR field2:val” 但由于某种原因,它不起作用。
然后我尝试将FilterQuery(参数“fq”)设置为: “field1:val OR field2:val”
它有效,但问题是我们系统的架构如下: 我们只能创建单独的过滤器,毕竟它们将由运营商“AND”链接。 换句话说,我们创建fq1,fq2,...然后我们的系统执行f1 = fq1 AND fq2 AND ...
所以,也许有人可以建议一些hack如何设置这个子句“field1:val OR field2:val” 到fq1,为了整个条款的正确工作: “f1 = fq1 AND fq2 AND ...”
答案 0 :(得分:0)
看起来您的用例非常适合SOLR中的Dismax / Edismax查询解析器:https://cwiki.apache.org/confluence/display/solr/The+DisMax+Query+Parser
特别是:
qf Query Fields: specifies the fields in the index on which to perform the query.
评论:fq的问题在于他们没有经历与q参数相同的查询预处理。但是,fqs确实支持布尔逻辑。