使用运算符 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 确实支持布尔逻辑。
我有 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 确实支持布尔逻辑。