我目前有类似的东西:
"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+.*','')"
}
}
}
}
答案 0 :(得分:5)
使用我在问题中粘贴的链接设法完成了这项工作:
GET _search
{
"size": 0,
"aggs": {
"group_by_myfield": {
"terms": {
"field": "myfield",
"script": "_value.replaceAll('\\\\s+.*','')"
}
}
}
}