彈性搜索中是否有更好的方法(除了發佈匹配所有查詢和手動平均所有返回文檔的長度以外)來獲取特定索引的平均文檔長度?Elasticsearch,獲取平均文檔長度
回答
的_size mapping field,如果允許,應該給你的每個文件的大小是免費的。將此與avg
聚合相結合應該可以得到你想要的。喜歡的東西:
{
"query" : {"match_all" : {}},
"aggs" : {"avg_size" : {"avg" : {"terms" : {"field" : "_size"}}}}
}
在黑暗中拍攝,但小面或聚合與腳本結合可能會做到這一點。
{
...,
"aggs" : {
"avg_length" : { "avg" : { "script" : "doc['_all'].length" } }
}
}
這實際上失敗[email protected]f59))],從[0],大小[10]:查詢失敗[無法執行主查詢]];嵌套:GroovyScriptExecutionException [MissingPropertyException [爲org.elasticsearch.index.fielddata.ScriptDocValues $字符串評估屬性「長度」的異常,原因:groovy.lang.MissingPropertyException:No such property:length for class:java.lang.String]]; 「 –
嘗試doc ['_ all']。values.size()而不是 – Arun
首先,_all字段並不總是存在,因爲它取決於索引模板 其次,通過這種方式, _all字段是一個特殊的全部字段,它將所有其他字段的值連接成一個大字符串,使用空格作爲分隔符,[...]按照https://www.elastic.co/guide/ en/elasticsearch/reference/current/mapping-all-field.html,它在6.x中被棄用 – lucabelluccini
我已經使用這個代碼(我已經啓用了_source)
{
"query" : {"match_all" : {}},
"aggs":{
"avg_length" : { "avg" : { "script" : "_source.toString().length()"}}
}
}
嗯,字符..。如果字符串是UTF-8,以獲得字節:
{
"query" : {"match_all" : {}},
"aggs":{
"avg_length" : { "avg" : { "script" : "_source.toString().getBytes(\"UTF-8\").length"}}
}
}
- 1. 如何在Lucene中獲得平均字段長度和文檔長度?
- 2. elasticsearch平均查詢和獲取時間
- 3. GROUPBY獲得平均長度名字
- 4. 計算平均文檔長度使用Lucene
- 5. 平均字長度.txt
- 6. ArrayList:獲取最長字符串的長度,獲取字符串的平均長度
- 7. LISP - 如何從嵌套列表中獲取平均長度?
- 8. 從頻率詞典獲取字數和平均長度
- 9. 平均單詞長度和平均句子長度的Java代碼
- 10. 在elasticsearch中查找文檔類型的平均商店大小
- 11. 獲取平均值
- 12. 平均字長
- 13. 均化讀取長度
- 14. 移動平均線移動長度
- 15. 可變長度VBA的平均行
- 16. 平均時間序列長度不同
- 17. 平均數據集長度不一
- 18. 平均單詞長度java applet
- 19. Spark中的平均單詞長度
- 20. 從ElasticSearch獲取最後一個文檔
- 21. 將R用於文本文件的平均句子長度
- 22. Python - 文件夾中所有文件的平均長度函數
- 23. 讀取文本文件並計算每個第三個字的平均長度
- 24. jquery獲取文檔寬度
- 25. 獲得使用python的單詞的平均長度減少
- 26. 獲取平均此查詢
- 27. 期間獲取平均數
- 28. 從dnorm獲取平均值
- 29. 獲取資金的平均
- 30. MySQL - 獲取平均每行
我喜歡這個比我的回答更好:) –
如果你想獲得文檔的大小,你需要指示ES來存儲大小對於每個文檔:https://www.elastic.co/guide/en/elasticsearch/reference/1.4/mapping-size-field.html –
除非您使用Elasticsearch 2.0或更早版本,否則不支持此功能。 – lucabelluccini