平時es查尋沒有報什么錯,現在因為開發新項目,查尋的時候開始報錯了,關鍵報錯信息:
all shards failed & nested: NullPointerException
網上查尋了一些相同報錯的情況,大多都是講述為索引的問題,所以我們便刪除改索引,重新建立了數據,結果依然一樣。
接着發現線上也沒有報錯,以及其他渠道參數來查詢,也是好好的。再結合還有一個空指針報錯,於是我們覺察出是數據的問題。
因為數據不多,所以將es條件查尋的數據一個一個刪除再查尋,發現的確是就一條問題數據,導致整個查尋失敗。對比了一下沒問題的數據和這條有問題的數據,發現問題數據sort的字段值為null!這也就印證了報錯中有空指針異常了。
最終處理了空指針問題,再次排序查尋,就好了。
結論:
出現all shards failed以及NullPointerException的報錯,首要去排查排序的字段,是否有null值!如果出現null值,必然出現該報錯。處理一下空指針情況即可。