目前我有这样的样本数据:
<doc>
<int name="name">Nice Dress</int>
<arr name="keyword">
<str>best cocktail dress</str>
<str>platform complete pumps</str>
<str>platform pumps</str>
<str>slip dress</str>
</arr>
我为“关键字”字段使用了多个值。
案例1
defType:edismax
qf:keyword
q:cocktail dress
solr将返回数据。
案例2
defType:edismax
qf:keyword
q:coctail dress pump
它仍会返回数据,如果我们从示例数据中看到,每个关键字的一行中没有关键字包含所有这3个字('coctail''dress''pump')。 如何使solr不返回此结果?
感谢。
答案 0 :(得分:1)
检查两个参数
positionIncrementGap
- 对于多值字段,此参数将决定多值字段中两个字段之间的距离。如果此值为100,则两个多值字段之间的距离将为100个位置。
注意 - 默认positionIncrementGap为0
检查dismax的qs
query slop参数,该参数将决定条款之间的斜率匹配。
答案 1 :(得分:0)
尝试此查询:
q:(coctail dress pump)~100
将positionIncrementGap
设置为300
。
这些值需要根据数据的长度而改变。