explicit
10
text
edismax
recip(div(abs(ms(NOW/DAY,pubTime)),86400000),1,100,100)
text
title^1.5
如果我加上 qf ,查询出来的结果就会变少,这是什么原因,还是说是正常现象
solr 查询 qf权重问题,加权后结果变少
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
你知我知皆知 2024-08-07 01:57关注以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
Solr的query分页功能可能会影响结果的数量。在你的例子中,你正在使用
recip(div(...))作为weight函数,这将计算每个文档的分数(即文本的重要性),然后将其除以总分数来得到一个从0到1之间的值。这个分数越高,表示文档越重要。如果你只对doc数量感兴趣,并且没有考虑其他因素,那么
qf参数不会影响结果的数量。然而,如果某些文档非常关键但并不频繁出现,那么它们可能会被赋予较高的权重,从而导致整个索引中的文档数量减少。为了验证这一点,你可以尝试以下步骤:
- 生成一些文档,例如:
{ "pubTime": "2023-01-01T00:00:00Z", "title": "测试文档" }- 对这些文档进行排序并获取前10条:
SELECT * FROM doc ORDER BY weight DESC LIMIT 10;这应该会显示10个文档,其中大部分是较新和较频繁出现的文档。 3. 将
qf设置为1:SELECT * FROM doc WHERE pubTime > NOW() - INTERVAL 1 DAY ORDER BY weight DESC LIMIT 10;现在你应该可以看到只有少数几个文档仍然出现在结果中,而大多数文档已经被移除了。
请注意,这只是简单的示例。实际情况下,Solr查询可能涉及更复杂的条件和逻辑,包括但不限于多因子权重、正则表达式匹配等。
解决 无用评论 打赏 举报