Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用不同搜索空间大小的不同lucene搜索结果_Java_Search_Lucene_Size_Scoring - Fatal编程技术网

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

Java 使用不同搜索空间大小的不同lucene搜索结果,java,search,lucene,size,scoring,Java,Search,Lucene,Size,Scoring,我有一个使用lucene进行搜索的应用程序。搜索空间有数千个。在这数千个搜索中,我只得到了很少的结果,大约20个(这是可以预料的) 然而,当我将搜索空间缩小到仅这20个条目时(即,我只为这20个条目编制索引,而忽略其他所有条目……以便开发更容易),我会得到相同的20个结果,但顺序不同(和评分) 我尝试通过字段#setOmitNorms(true)禁用规范因子,但仍然得到不同的结果 是什么导致了得分的差异 谢谢评分取决于索引中的所有文档: 总的来说,这个计划背后的理念 向量空间模型(VSM)是最重

我有一个使用lucene进行搜索的应用程序。搜索空间有数千个。在这数千个搜索中,我只得到了很少的结果,大约20个(这是可以预料的)

然而,当我将搜索空间缩小到仅这20个条目时(即,我只为这20个条目编制索引,而忽略其他所有条目……以便开发更容易),我会得到相同的20个结果,但顺序不同(和评分)

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

是什么导致了得分的差异


谢谢

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

总的来说,这个计划背后的理念 向量空间模型(VSM)是最重要的 查询项在列表中出现的次数 文档相对于 该术语出现在所有字段中的次数 集合中的文档与查询的相关性越大


来源:

请参阅Lucene的评分文档。我打赌这两种情况下的idf不同(numDocs和docFreq都不同)。为了确定,使用函数调试分数

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

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);
}

对不起,请问在哪里可以得到explain()的int(第二个参数)?我没有太多时间来回顾我的问题,但这个建议似乎指向了正确的方向。谢谢,我不太明白。因此,如果我在搜索空间中的所有人中搜索一个名为“Mark”的人,我会得到“Mark Anthony”、“Markos”和“Mark”。但是如果我将搜索空间限制为这3个(仅将索引限制为这3个),我将得到“Mark”、“markanthony”和“Markos”。如果相关文件相同,但“噪音”文件不同,他们的排序会发生什么变化?对不起,我也不是专家。你看了吗?