elasticsearch aggregation using a script to transform field value being aggregated
elasticsearch, mvel
Solution
I managed to get it done using the link I pasted in my question:
GET _search
{
"size": 0,
"aggs": {
"group_by_myfield": {
"terms": {
"field": "myfield",
"script": "_value.replaceAll('\\\\s+.*','')"
}
}
}
}
Problem
I currently have something like: ``` "aggs": { "group_by_myfield": { "terms": { "field": "myfield" } } } ``` However the value for myfield is "alpha 1.0", "alpha 2.0", "beta 1.0". Now I want to only aggregate over the values "alpha", "beta". How do I do that? I tried: ``` "aggs": { "group_by_myfield": { "terms": { "field": "myfield" "script": "_value.split()[0]" } } } ``` But I guess there is no split functionality. Any suggestions are welcome! I found a similar question here which is unanswered as well.