solr - 字符串搜索字段的多个值,所有字必须匹配

时间:2013-08-29 11:03:34

标签: solr

目前我有这样的样本数据:

<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不返回此结果?

感谢。

2 个答案:

答案 0 :(得分:1)

检查两个参数

positionIncrementGap - 对于多值字段,此参数将决定多值字段中两个字段之间的距离。如果此值为100,则两个多值字段之间的距离将为100个位置。

注意 - 默认positionIncrementGap为0

检查dismax的qs query slop参数,该参数将决定条款之间的斜率匹配。

答案 1 :(得分:0)

尝试此查询:

q:(coctail dress pump)~100

positionIncrementGap设置为300

这些值需要根据数据的长度而改变。