10

如何提高我的查询与之前的特定字段匹配的文档的分数。例如,搜索“超人”应该给“超人回报”比“有我的超人”更高的分数。这可能吗?

4

2 回答 2

2

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

  • 创建一个名为 say 'nameString' 的单独字段,该字段将值存储为"_START_ <actual data>"
  • 将搜索查询更改为"_START_ <actual query>"
  • 将新字段添加nameString为要在查询字段参数 (qf) 中查看的字段之一
  • 搜索时使用参数 pf(短语字段)作为nameString短语 slop 为 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 */
于 2012-08-22T18:32:20.000 回答
2

检查选项@ Ranking-based-on-term-position

于 2012-08-22T18:32:21.140 回答