1

我正在使用 Solr 来匹配短语。

指数数据:

id:1
keyword:"simple  text|text with simple word |simple word text"
group:group1

id:2
keyword:"complex word| words with adjectives| text with adjective"
group:group2 

我已经索引了由管道分隔的短语,这些短语属于 1 组

询问 :

"Document with simple text"

当我使用上述查询进行搜索时,我的搜索结果应该是

id:1
keyword:"simple  text
Group: Group1

因为

查询包含上述短语中的所有单词,即:“simple”和“text”

谁能告诉我如何在 solr 中做到这一点?

4

1 回答 1

0

在搜索词之间使用布尔 OR 运算符:

 Document OR with OR simple OR text

这不会保证命中词的顺序,但允许部分匹配。

如果您使用 DisMax 查询解析器,您还可以指定要匹配的术语比率的最小下限(例如,您总是希望至少 50% 的术语匹配)。使用mm参数:https ://lucene.apache.org/solr/guide/6_6/the-dismax-query-parser.html#TheDisMaxQueryParser-Themm_MinimumShouldMatch_Parameter

顺便说一句,管道 (|) 概念在您的keyword领域中的用途尚不清楚。您是否打算将值存储在数组中?为此使用multiValued=true字段上的设置并单独存储每个值。

于 2019-03-29T08:34:41.157 回答