sol中的qf没有给出一个specefied字段任何提升

时间:2016-08-06 14:26:16

标签: solr edismax

作为简化示例。 我有两个字段:titlekeywords。 我正在使用带有以下参数的edismax

qf:title + keywords ^ 2

以前,它工作正常。我在solr中索引了大约15M条记录。所有记录都非空title。大多数记录 HAD 非空keywords

但是最近,我们决定删除大多数记录的keywords。因此,我们目前只有1条记录(15M记录中)非空keywords

不幸的是,由于这一点,keywords^2中指定的qf提升似乎不再起作用。

对于该记录,我们有title,例如" 商店"和keywords,比方说," 裤子服装"。现在,如果我搜索' 好商店裤子',无论我使用qf: title还是qf: title keywords^2.5,solr匹配得分都完全相同。 (同样,我认为之前大多数记录都有非空关键字,因为上述比较的solr匹配分数不同。)

1 个答案:

答案 0 :(得分:1)

回答我自己的问题。 由于只有一条记录具有非空keywords。 根据solr使用的IDF公式,基值小于1.因此,将它提高^ 2对此毫无帮助。 所以,我认为"解决方案"是使用非空关键字添加更多记录。当然,这不是一个真正的解决方案。

有关debugQuery的输出,请参阅以下内容。

  0.84748024 = weight(keywords:good in 4161) [], result of:
    0.84748024 = score(doc=4161,freq=1.0 = termFreq=1.0
    ), product of:
      3.0 = boost
      0.2876821 = idf(docFreq=1, docCount=1)
      0.9819638 = tfNorm, computed from:
        1.0 = termFreq=1.0
        1.2 = parameter k1
        0.75 = parameter b
        5.0 = avgFieldLength
        5.2244897 = fieldLength