AND/OR 在 Solr 中搜索的问题
Problems with AND/OR search in Solr
我在 solr 搜索中遇到奇怪的问题或意外行为。
我正在搜索两个术语 "Goethe" 和 "Schiller",如下所示:
http://localhost/solr/select/?&q=abstract:%28goethe%20or%20schiller%29&indent=true
虽然此搜索工作正常,但我不想只查看 "abstract" 字段,而是查看所有字段。所以我想我会搜索
http://localhost/solr/select/?&q=goethe%20schiller&indent=true
但这只 returns 匹配两个词出现的地方 (AND)。
这看起来很奇怪,因为我没有将 "and" 定义为我的 schema.xml 中的 defaultOperator。即使我在那里明确定义 "OR" 或尝试类似
http://localhost/solr/select/?&q=goethe%20schiller&indent=true&q.op=OR
我没有得到想要的结果,仍然只有两个术语都出现的结果。总结:除了明确定义的字段外,我无法执行 OR 搜索。
有没有我遗漏的选项?还有其他地方我可以定义 defaultOperator 吗?
提前致谢!
回答我自己的问题:是的,还有其他选择。如果
<str name="mm">100%</str>
在 requestHandler 中设置为 100%,这等于 "AND",而 0% 等于 "OR"。我有这个设置,似乎它是在旧版本的 Solr 中完成的方式。
对于给您带来的不便,我们深表歉意。
对于solr 5.1.0版本,默认operator在schema.xml里面指定。
<solrQueryParser defaultOperator="OR"/>
如果您想使用 AND 或 OR 而不是搜索查询的默认查询,您可以为其定义一个查询解析器:
q={!q.op=AND}+KEYWORDS
对于旧版本的 solr,是的,您必须指定 mm(最小 'should' 匹配)值。可以找到关于毫米字段here的详细信息
我在 solr 搜索中遇到奇怪的问题或意外行为。
我正在搜索两个术语 "Goethe" 和 "Schiller",如下所示:
http://localhost/solr/select/?&q=abstract:%28goethe%20or%20schiller%29&indent=true
虽然此搜索工作正常,但我不想只查看 "abstract" 字段,而是查看所有字段。所以我想我会搜索
http://localhost/solr/select/?&q=goethe%20schiller&indent=true
但这只 returns 匹配两个词出现的地方 (AND)。
这看起来很奇怪,因为我没有将 "and" 定义为我的 schema.xml 中的 defaultOperator。即使我在那里明确定义 "OR" 或尝试类似
http://localhost/solr/select/?&q=goethe%20schiller&indent=true&q.op=OR
我没有得到想要的结果,仍然只有两个术语都出现的结果。总结:除了明确定义的字段外,我无法执行 OR 搜索。
有没有我遗漏的选项?还有其他地方我可以定义 defaultOperator 吗?
提前致谢!
回答我自己的问题:是的,还有其他选择。如果
<str name="mm">100%</str>
在 requestHandler 中设置为 100%,这等于 "AND",而 0% 等于 "OR"。我有这个设置,似乎它是在旧版本的 Solr 中完成的方式。
对于给您带来的不便,我们深表歉意。
对于solr 5.1.0版本,默认operator在schema.xml里面指定。
<solrQueryParser defaultOperator="OR"/>
如果您想使用 AND 或 OR 而不是搜索查询的默认查询,您可以为其定义一个查询解析器:
q={!q.op=AND}+KEYWORDS
对于旧版本的 solr,是的,您必须指定 mm(最小 'should' 匹配)值。可以找到关于毫米字段here的详细信息