【问题标题】:Use Lucene Similarity's Coord value as hit score使用 Lucene Similarity 的 Coord 值作为命中分数
【发布时间】:2025-11-27 20:20:19
【问题描述】:

有没有办法只返回相似度坐标值作为命中分数?我已经覆盖了我能想到的所有方法组合,没有运气就得到这个结果。实际上,分数不必是精确的坐标值,但所有命中都应该基于该值相互关联,仅此而已。

例如,如果我搜索“测试搜索字符串”并点击两个单词,我希望该分数是所有三个单词命中分数的 66%。

这是在 Lucene.net 2.9.4 中,但我可以根据需要翻译任何 Java 实现。

提前致谢。

【问题讨论】:

    标签: lucene lucene.net


    【解决方案1】:

    我从未尝试过,所以我不知道它是否可行,但您可能可以创建自己的 Similarity 实现并通过调用 Searcher.SetSimilarity() 方法来使用它。

    除了Similarity 中的Coord() 之外的所有方法都返回1。Coord() 方法可以简单地读取:

    return overlap / (float) maxOverlap;
    

    【讨论】:

    • 谢谢,成功了。我有你提到的设置,但我的投射错误 (return (float)(overlap / maxOverlap)),它总是返回 0。