gpt4 book ai didi

java - 使用不同搜索空间大小的不同 lucene 搜索结果

转载 作者:行者123 更新时间:2023-12-03 02:31:19 24 4
gpt4 key购买 nike

我有一个使用 lucene 进行搜索的应用程序。搜索空间有数千个。在这数千个搜索中,我只得到了一些结果,大约 20 个(这是正常的,也是预期的)。

但是,当我将搜索空间减少到只有那 20 个条目时(即我只对这 20 个条目建立索引并忽略其他所有内容......这样开发会更容易),我得到相同的 20 个结果,但顺序不同(和评分)。

我尝试通过 Field#setOmitNorms(true) 禁用范数因子,但仍然得到不同的结果?

什么可能导致评分差异?

谢谢

最佳答案

请参阅 Lucene 的 Similarity API 中的评分文档。我的赌注是两种情况之间 idf 的差异(numDocs 和 docFreq 都不同)。为了确定,请使用 explain()调试分数的函数。

编辑:用于获取解释的代码片段:

TopDocs hits = searcher.search(query, searchFilter, max);
ScoreDoc[] scoreDocs = hits.scoreDocs;
for (ScoreDoc scoreDoc : scoreDocs) {
String explanation = searcher.explain(query, scoreDoc.doc).toString();
Log.debug(explanation);
}

关于java - 使用不同搜索空间大小的不同 lucene 搜索结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1742124/

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