elasticsearch aggregation使用脚本转换要聚合的字段值

时间:2014-04-23 22:58:32

标签: elasticsearch mvel

我目前有类似的东西:

"aggs": { "group_by_myfield": { "terms": { "field": "myfield" } } }

然而,myfield的值是“alpha 1.0”,“alpha 2.0”,“beta 1.0”。现在我想只聚合值“alpha”,“beta”。我怎么做?我试过了:

"aggs": { "group_by_myfield": { "terms": { "field": "myfield" "script": "_value.split()[0]" } } }

但我想没有拆分功能。欢迎任何建议!

我发现了一个类似的问题here,但也没有回答。

编辑: 设法使用上面的链接完成它。以下查询完成了这项工作。

GET _search { "size": 0, "aggs": { "group_by_myfield": { "terms": { "field": "myfield", "script": "_value.replaceAll('\\\\s+.*','')" } } } }

1 个答案:

答案 0 :(得分:5)

使用我在问题中粘贴的链接设法完成了这项工作:

GET _search { "size": 0, "aggs": { "group_by_myfield": { "terms": { "field": "myfield", "script": "_value.replaceAll('\\\\s+.*','')" } } } }