ES排序值相同順序隨機的問題

2022-09-04 01:00:15 字數 541 閱讀 9420

es排序值相同順序隨機的問題

es按某一列排序,當值相同出現的先後順序隨機,所以導致前端頁面顯示看起來怪怪的,每次排序都不一樣使用者會認為錯誤。

這個玩意是因為es查詢時每個分片單獨查詢最後再歸併,歸併時是隨機的,所以結果是隨機的。

解決方式參考:

通過乙個額外的列進行排序保證2列加起來不會出現相同的值用以解決這個問題。但是對於這個額外的列的選擇,依舊有著一定的考量。

_doc是es索引中自帶的id,是個整形,所以用它排序是最方便也效能最高的,但是es的機制決定著每個分片都會有自己的索引,也就是說不同分片內的不同文件可能有相同的_doc,所以用_doc排序還是可能會出現隨機的問題。例如10個分片的index中,只按_id排序會出現10個_doc為0的文件。

那麼_id就是唯一選擇了,它是乙個唯一屬性可以保證每個文件不一樣。

由於我們使用模板查詢,所以加上一條按'_id'查詢之後會導致每次查詢都帶著這個排序條件,會導致效能下降。

為了避免效能遭受損失,應當將需要按"_id"排序的查詢單獨部署為乙個模板,這樣可以避免其他用模板進行查詢時的效能損失。

刪除順序錶值相同的多餘元素

編寫演算法,在順序表l中,刪除所有值相等的多餘元素。函式介面定義 void delsame seqlist l l 指向順序表。裁判測試程式樣例 include define maxsize 20 struct seqlist typedef struct seqlist seqlist 型別定義 ...

刪除順序錶值相同的多餘元素

編寫演算法,在順序表l中,刪除所有值相等的多餘元素。函式介面定義 void delsame seqlist l l 指向順序表。裁判測試程式樣例 include define maxsize 20 struct seqlist typedef struct seqlist seqlist 型別定義 ...

隱含的排序問題 質量相同石頭木頭配對問題

問題 有n塊石頭,n根木頭,憑外觀無法判斷重量相對輕重,石頭兩兩重量不同,木頭兩兩重量不同,但是任何一塊石頭都有一根木頭與其質量相同,給你乙個天平,將其分成n對質量相同的 石頭,木頭 堆。注 天平左邊只能放石頭,右邊只能放木頭 天平兩邊可以放物體a和物體b,這樣就可以a與b的重量大小關係,如果沒有限...