Solr - 如何提高早期比赛的得分?

tec*_*bar 7 solr

如何提高我的查询先前与特定字段匹配的文档的分数.例如,搜索"超级男人"应该给"超级男人回归"一个比"有我超级男人"更高的分数.这可能吗?

tec*_*bar 2

在网上阅读了很多相关内容后,我自己解决了这个问题。对我特别有帮助的是 nabble 上的回复,如下所示(我使用了 dismax,所以在这里解释一下):

  • 创建一个名为“nameString”的单独字段,该字段将值存储为"_START_ <actual data>"
  • 将搜索查询更改为"_START_ <actual query>"
  • 将新字段添加nameString为要在查询字段参数 (qf) 中查找的字段之一
  • 搜索时使用参数 pf(短语字段)作为新字段,nameString短语斜率为 1 或 2(值越低意味着搜索越严格)

您的最终查询参数将类似于:

q=_START_ <actual query>
defType=dismax
qf=name nameString /* look in name field as well as nameString field */
pf=nameString /* phrase field in nameString */
ps=2 /* phrase slop */
Run Code Online (Sandbox Code Playgroud)