我正在使用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
因为
查询包含以上短语中的所有单词 即:“简单”和“文本”
谁能告诉我我该怎么做?
答案 0 :(得分:0)
在搜索词之间使用布尔OR运算符:
Document OR with OR simple OR text
这不能保证热门单词的顺序,但允许部分匹配。
如果使用DisMax查询解析器,则还可以指定要匹配的术语比率的最小下限(例如,您始终希望至少匹配50%的术语)。使用mm
参数的Fo:https://lucene.apache.org/solr/guide/6_6/the-dismax-query-parser.html#TheDisMaxQueryParser-Themm_MinimumShouldMatch_Parameter
顺便说一句,keyword
字段中竖线(|)概念的用途尚不清楚。您是否打算将值存储在数组中?为此,请在字段上使用multiValued=true
设置,并分别存储每个值。