gpt4 book ai didi

java - AND/OR 的 Lucene 问题

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

无论如何,我是否可以保证具有所有查询词的每个文档总是比具有较少查询词的文档得分更高?

请注意,我不想坚持使用 AND 语义。如果没有与所有查询词匹配的文档,我仍然想显示结果。

最佳答案

您可以尝试的一件事(安全、快速)是继承 DefaultSimilarity 并调整协调因子的计算。默认计算是一个基本分数(例如,仅匹配 3 个术语中的 2 个的文档仍然获得协调因子的 2/3 作为匹配所有 3 个)。

如果这个因素(匹配所有查询词)对你很重要,那么我建议你明确提升匹配所有查询词的文档,下面是一个例子,它再次将任何不匹配的文档的分数减半t 匹配所有查询词。

例如:


@Override
public float coord(int overlap, int maxOverlap) {
return (overlap == maxOverlap)
? 1f
: 0.5f * super.coord(overlap, maxOverlap);
}

这里更详细地描述了这个因素: Lucene Similarity javadocs

关于java - AND/OR 的 Lucene 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5750401/

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