0
我在彈性搜索中有兩個字段(ID和Name)。如何編寫腳本在elasticsearch中分別排序兩個桶
我必須搜索和排序由下面的條件的數據的要求:
剷鬥1:包含具有名稱值空(排序以升序ID字段)
剷鬥2中的所有記錄:包含具有名稱中的所有記錄值呈現(按名稱字段按升序排序)
然後在一個響應中返回存儲區1的所有記錄,然後返回存儲區2。
我在彈性搜索中有兩個字段(ID和Name)。如何編寫腳本在elasticsearch中分別排序兩個桶
我必須搜索和排序由下面的條件的數據的要求:
剷鬥1:包含具有名稱值空(排序以升序ID字段)
剷鬥2中的所有記錄:包含具有名稱中的所有記錄值呈現(按名稱字段按升序排序)
然後在一個響應中返回存儲區1的所有記錄,然後返回存儲區2。
聽起來好像你可以用不同的方式說明這一點:獲取所有文檔,然後按名稱排序(先空!),然後按ID排序。
這樣說,解決方案非常容易失敗。無論如何,空字段應該排序時排序升序,所以:
{
"query" : {
"match_all": {}
},
"sort" : [
{ "Name" : "asc" },
{ "ID" : "asc" }
]
}
但在這種情況下,桶2將按ID也排序,我不想。我希望Bucket 1只會按ID字段排序,而Bucket 2只會按名稱字段排序。在結果Bucket 1之後是Bucket 2. – Shailendra
@Shailendra - 只有當Name相等時,Bucket 2纔會按ID排序。既然你沒有指定名稱相等時應如何排序,我認爲這是可以接受的。 – femtoRgon