使用运算符 OR 创建 solr 过滤器查询的问题

Problems with creating solr filter query with operator OR

我有 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..."

看起来您的用例很适合 Dismax/Edismax SOLR 中的查询解析器: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 确实支持布尔逻辑。