2

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

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

谢谢。

4

2 回答 2

2

检查两个参数

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

注意- 默认 positionIncrementGap 为 0

检查 dismax 的qs 查询slop 参数,这将决定术语之间的 slop 匹配。

于 2013-08-29T12:19:16.387 回答
1

试试这个查询:

q:(coctail dress pump)~100

与您的positionIncrementGap设置类似300

这些值将需要根据您的数据长度进行更改。

于 2013-08-29T12:33:37.730 回答