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

发布于 2024-08-12 04:04:40 字数 271 浏览 7 评论 0原文

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

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

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

是什么导致了评分的差异?

谢谢

I have an application that uses lucene for searching. The search space are in the thousands. Searching against these thousands, I get only a few results, around 20 (which is ok and expected).

However, when I reduce my search space to just those 20 entries (i.e. I indexed only those 20 entries and disregard everything else...so that development would be easier), I get the same 20 results but in different order (and scoring).

I tried disabling the norm factors via Field#setOmitNorms(true), but I still get different results?

What could be causing the difference in the scoring?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

A君 2024-08-19 04:04:40

请参阅 Lucene 的 相似度中的评分文档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);
}

Please see the scoring documentation in Lucene's Similarity API. My bet is on the difference in idf between the two cases (both numDocs and docFreq are different). In order to know for sure, use the explain() function to debug the scores.

Edit: A code fragment for getting explanations:

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);
}
雨轻弹 2024-08-19 04:04:40

评分取决于索引中的所有文档:

总的来说,其背后的想法
向量空间模型(VSM)是更
查询词出现在 a 中的次数
文档相对于数量
该术语出现在所有
集合中的文档,该文档与查询的相关性越高。

来源:Apache Lucene - 评分

Scoring depends on all the documents in the index:

In general, the idea behind the
Vector Space Model (VSM) is the more
times a query term appears in a
document relative to the number of
times the term appears in all the
documents in the collection, the more relevant that document is to the query.

Source: Apache Lucene - Scoring

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文