2017-05-25 66 views
0

我在Groovy腳本以下行,我正在試圖改寫成無痛 -排序在Elasticsearch無痛

def buckets = ctx.payload.aggregations.metrics.buckets.sort(a,b -> a.largest_surprise.value == b.largest_surprise.value ? 0 : a.largest_surprise.value < b.largest_surprise.value ? -1 : 1); 

我得到的編譯錯誤是「變量[A]沒有定義。 「

它看起來像無痛支持Collections.sort方法在Java中,所以我嘗試 -

Collections.sort(ctx.payload.aggregations.metrics.buckets, a,b -> a.largest_surprise.value == b.largest_surprise.value ? 0 : a.largest_surprise.value < b.largest_surprise.value ? -1 : 1); 

但是,這也有一個編譯錯誤 - 「未知來電[分頁]與[3]類型變量[收藏]「。

是否可以使用lambda進行無痛分類?如果是這樣,那麼語法是什麼?另外,有沒有比https://www.elastic.co/guide/en/elasticsearch/painless/master/painless-api-reference.html更好的參考資料?

感謝, 尼克

回答