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.

Original source