我尝试将程序从基于lucene的搜索迁移到Elasticsearch,然后将相同的文档集合放入lucene和Elasticsearch以进行比较测试。在ES中,对于每个文件与经典文件的相似性,我仅使用一个分片和更改映射。但是当我使用公共TopDocs搜索(查询查询,整数n)来获取N个最高分的文档时,仍然得到了不同的结果。当N较小时,结果基于lucene且ES有所差异;而当N越大时,其差异会减小。所以我想知道造成这种差异的原因是什么,以及如何才能实现无差异。
以下是我对该问题的假设:
因为TopScoreCollector返回topN个文档,而分数是根据细分计算的。 因此,如果将N个文档划分为不同的段数,则由于tf / idf会更改,因此分数会受到影响。 这是我的整体理解,我想知道我的理解是对还是错。