2017-06-18 71 views
0

我想要执行术语聚合,并在每个结果桶中执行脚本操作后获取命中字段。elasticsearch:在顶部点击聚合字段上运行脚本

例如,如果这些文件:

{"age": 15, "firstName": "Dana", "lastName": "Miller"} 
{"age": 15, "firstName": "Michelle", "lastName": "Bob"} 
{"age": 32, "firstName": "Mary", "lastName": "Smith"} 
{"age": 32, "firstName": "Anna", "lastName": "Taylor"} 

,聚集通过 “年龄” 字段,并且脚本是: “回归 'DOC [' 的firstName '] +''+ DOC [ '的lastName'] “

结果应该是:

桶1(年龄:15):

  • ” 达纳轧机ER”
  • “米歇尔·鲍勃”

Buchet 2(32岁):

  • 玛丽·史密斯
  • 安娜·泰勒

这是可能的elasticsearch?

编辑

另外,我正在寻找一种方式来的水桶跑过来多命中的脚本。 例如,如果我们使用上面的文档和年龄字段的术语聚合,我可以通过以下方式获得桶中的命中结果吗?

桶1(15岁):

  • “达纳米勒和Michelle鲍勃”

Bucket2(32岁):

  • “玛丽·史密斯和安娜泰勒”

在ES中可能吗?

谢谢。

回答

0

我想下面的查询可以帮助你。

{ 
"size": 0, 
"aggs": { 
    "group By age": { 
    "terms": { 
     "field": "age" 
    }, 
    "aggs": { 
     "top hits": { 
      "top_hits": { 
       "script_fields": { 
       "Name": { 
        "script": "doc['firstName'].value + ' ' + doc['lastName'].value " 
        } 
       } 
       } 
      } 
     } 
     } 
    } 
    } 

希望这有助于!

+0

谢谢。你还可以在多个桶上运行脚本吗? – Shani

+0

我没有给你?你想达到什么? – Richa

+0

您的回答有帮助。我还在上面的问题中添加了另一个问题:在多个桶的结果上运行脚本。例如,获得第1桶的以下结果:“Dana Miller和Michelle Bob”。 – Shani

相关问题