gpt4 book ai didi

Solr归一化分数

转载 作者:行者123 更新时间:2023-12-04 12:57:34 24 4
gpt4 key购买 nike

我想知道是否有办法知道 solr 响应中的第一个结果是否与我的查询完全匹配?
例如,我正在搜索带有以下文字的文档:“iphone 6s 64GB gold”

我得到了 3 个结果:

1) 带有“iphone 6s 64GB”字样的第一个结果,得分为:187.86491
2) 带有“iphone 6s”字样的第二个结果,得分为:170.36568
3) 带有“iphone”的第三个结果,得分为:136.68152
当我对分数进行标准化时,我得到了这些新分数:

1) score 1.0
2) score 0.92
3) score 0.66

这里的问题是第一个结果的得分为 1.0(仅因为它是 solr 得分较高的第一个结果,但它不能证明它是完全匹配的),而在我看来,它应该是 ~0.5,因为它不是完全匹配。
我想知道我得到的结果是否真的相关,并且只采用“最相关”的结果 - 例如:只有分数 > 0.6 的结果。
但我现在不能这样做,因为 0.6 不能证明真正的相关性。

最佳答案

没有“真正的相关性”这样的东西,这就是为什么最高分没有标准化为 1.0 的原因。根据您为 Solr 提供的参数(例如如何对各个字段相互评分),可以认为事情或多或少相关。在这种情况下,“60% 相关性”的真正含义是什么?查询之间的分数(通常)是不可比较的,并且会根据索引的内容而变化(如果索引具有相同术语的新文档,如果再次运行,前一个查询的分数可能会降低)。

如果您想对精确匹配进行优先级排序,请添加一个带有 KeywordTokenizer 和 LowercaseField 的字段,并为该字段评分更高(通过 qf=)。如果大小写很重要,请改用 StrField(它只会为您提供完全精确的匹配)并为该字段评分更高。

如果您想要求所有术语都存在,请使用 q.op=AND ,如果所有字段都不存在,则不会产生任何命中。如果要进行更高级的匹配,请使用 mm参数来准确说明需要匹配多少项(您可以按百分比、在一个间隔内等方式进行匹配)。

当您使用 dismax 或 edismax 查询处理程序时,这些设置是相关的,这听起来像是您的问题。

关于Solr归一化分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35550021/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com