Solr多字搜索

时间:2015-08-10 10:30:15

标签: search solr

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

即文字

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

如果我搜索褐色,我应该得到两行结果 如果我搜索快速褐色,我应该只获得第一行

这可以通过solr实现吗?

2 个答案:

答案 0 :(得分:1)

您可以使用edismax查询解析器(以及dismax查询解析器)中的mm参数来调整Solr匹配多个术语的方式。虽然第二个示例(应排除第二行),但mm参数允许您准确调整需要匹配的项数,以使文档被视为对搜索有效。

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

答案 1 :(得分:0)

亲爱的,您可以在两个工作之间使用AND运算符(&&)来搜索单个文档。 喜欢:“quick”和“brown”会给你一个第一个文件。 AND运算符匹配文档,其中两个术语存在于单个文档的文本中的任何位置

也更喜欢使用+符号来强制记录中的单词。

+ brown + quick

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

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