如何提高我的查询与之前的特定字段匹配的文档的分数。例如,搜索“超人”应该给“超人回报”比“有我的超人”更高的分数。这可能吗?
问问题
3587 次
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
于 2012-08-22T18:32:21.140 回答