2017-06-18 73 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

相關問題