最近在工作闲暇的时候做了一个测试,以下查询全部不涉及到相关性查询,当我以_doc作为排序字段时,当我已某一具体字段排序时,当我不加sort(或排序的字段值都一样时)时,是完全3中不同的结果。
理论上按照固定字段排序,比如id或时间字段排序是没问题的,顺序也是我想要的,
_doc排序按照官网所说应该是lucene的docid,这个也没问题
当我在不加sort的时候,查询出来的结果也是有顺序的,而且每次都一样,那么这个顺序是依靠什么算出来的呢?
这几天一直想这个问题,顺便看了一下lucene的源码,发现其实lucene在无相关性排序的时候默认也是按照docid来的,那这就奇怪了,同时在es中我每次查询返回的docid为什么都是-1?
理论上按照固定字段排序,比如id或时间字段排序是没问题的,顺序也是我想要的,
_doc排序按照官网所说应该是lucene的docid,这个也没问题
当我在不加sort的时候,查询出来的结果也是有顺序的,而且每次都一样,那么这个顺序是依靠什么算出来的呢?
这几天一直想这个问题,顺便看了一下lucene的源码,发现其实lucene在无相关性排序的时候默认也是按照docid来的,那这就奇怪了,同时在es中我每次查询返回的docid为什么都是-1?
2 个回复
solike8 - 95后,挨打男
赞同来自:
WarrenW
赞同来自: