平时es查寻没有报什么错,现在因为开发新项目,查寻的时候开始报错了,关键报错信息:
all shards failed & nested: NullPointerException
网上查寻了一些相同报错的情况,大多都是讲述为索引的问题,所以我们便删除改索引,重新建立了数据,结果依然一样。
接着发现线上也没有报错,以及其他渠道参数来查询,也是好好的。再结合还有一个空指针报错,于是我们觉察出是数据的问题。
因为数据不多,所以将es条件查寻的数据一个一个删除再查寻,发现的确是就一条问题数据,导致整个查寻失败。对比了一下没问题的数据和这条有问题的数据,发现问题数据sort的字段值为null!这也就印证了报错中有空指针异常了。
最终处理了空指针问题,再次排序查寻,就好了。
结论:
出现all shards failed以及NullPointerException的报错,首要去排查排序的字段,是否有null值!如果出现null值,必然出现该报错。处理一下空指针情况即可。