我正在使用 elasticsearch 使用“更像这样”查询来查找与给定文档相似的文档。
有没有一种简单的方法可以让弹性搜索得分在 0 和 1 之间(使用余弦相似度)?
谢谢!
我正在使用 elasticsearch 使用“更像这样”查询来查找与给定文档相似的文档。
有没有一种简单的方法可以让弹性搜索得分在 0 和 1 之间(使用余弦相似度)?
谢谢!
您可能想查看Elasticsearch 的 Function Score 功能,更具体地说是script_score
andfield_value_factor
函数。这将允许您从默认评分 ( _score
) 中获取分数并以其他方式增强或替换它。这真的取决于你想要什么样的提升或转变。默认评分模型考虑了向量模型,但也考虑了其他因素。
Elasticsearch 使用布尔模型来查找匹配的文档,并使用一个称为实用评分函数的公式来计算相关性。这个公式借用了词频/逆文档频率和向量空间模型的概念,但添加了更现代的特征,如协调因子、字段长度规范化以及词或查询子句增强。
我认为这不可能直接检索。
但也许这种解决方法有意义?
Elasticsearch 总是带回文档max_score
。hits
您可以将文档划分_score
为max_score
. 具有最高值的报告将得分为 1,与给定值不太相似的文档将得分较低。