2013-03-15 75 views
4

我想對我的一個數組做一個統計方面的工作。我希望像如何在elasticsearch中獲得數組的數量/大小

"script" : "doc['myField'].doubleValue 

"script" : "doc['myField'].count 

會工作。我還沒有找到任何數組中的數組方法,我甚至不知道是否訪問腳本中的數組字段實際上給了我數組。

+0

看看這裏:http://stackoverflow.com/questions/12733351/how-do-i-sort-the-search-results-according-to-the-number-of-items-in -elasticsear/12734613#12734613 – javanna 2013-03-15 17:42:14

回答

5

我可能擁有它。看來我需要計算數組內的一個字段而不是數組本身。這可能只是因爲我所有的都是對象數組。

"script" : "doc['arrayField.objectField'].values.length" 
+0

哈,我這樣做,它完全殺死了我的集羣。也許有一種方法可以實現更好的性能。 – Alden 2013-03-15 17:59:35

+0

它會殺死你的集羣,因爲它將這個字段的所有值加載到內存中,在版本0.90之前,elasticsearch使用相當低效的結構來保存內存中多值字段的值。因此,您在這裏有幾個選項:升級到0.90.0.Beta1,如果存儲該字段,則使用_fields而不是doc;或者將數組長度作爲另一個字段索引。我認爲最後的解決方案是最好的。 – imotov 2013-03-16 00:15:11

相關問題