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的详细信息