Solr 多词搜索

Solr multiple word search

我想知道如何通过在搜索中添加多个单词来搜索行。

即文本是

The quick brown fox jumps over the lazy dog

我要搜索

quick dog

这样我就可以在结果中得到这一行

如果我搜索

快象

我仍然应该在结果中得到这一行。

The quick brown fox jumps over the lazy dog
The lazy brown fox jumps over the lazy dog

如果我搜索棕色,我应该在结果中得到两行 如果我搜索 quick brown 我应该只得到第一行

这可以用 solr 实现吗?

您可以通过在 edismax 查询解析器(以及 dismax 查询解析器)中使用 mm 参数来调整 Solr 匹配多个术语的方式。在第二个示例中(第二行应该被排除在外),mm 参数允许您精确调整文档需要匹配多少个术语才能被认为对搜索有效。

在第二个示例中,第二行的得分将低于第一行,但您无法将其排除。

亲爱的,您可以在要在单个文档中搜索的两项工作之间使用 AND 运算符 (&&)。 比如:"quick" AND "brown" 会给你一个第一份文件。 AND 运算符匹配两个术语都存在于单个文档文本中的任何位置的文档

也更喜欢使用+号来表示文档中的单词强制。

+棕色+快速

“+”或必需运算符要求“+”符号后的术语存在于单个文档字段中的某处。

参考:https://lucene.apache.org/core/2_9_4/queryparsersyntax.html