2017-05-05 144 views
0

例如,我有下一個文檔。elasticsearch中的消息聚合

{sourceIP:1.1.1.1, destIP:2.2.2.2} 
{sourceIP:1.1.1.1, destIP:3.3.3.3} 
{sourceIP:1.1.1.1, destIP:4.4.4.4} 

有沒有辦法自動將它們聚合成一個文件,其中將包含下一個數據?

{sourceIP:1.1.1.1, destIP:{2.2.2.2,3.3.3.3,4.4.4.4}} 

因此它看起來像SQL中的group by,但在elasticsearch中生成新文檔而不是舊文件。

+0

你想讓這個由Elasticsearch自動完成嗎?或者你想在查詢中做到這一點? Elasticsearch如何支持知道要聚合哪些文檔? –

+0

查看存儲桶聚合(https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket.html) – JiriS

+0

dest IP可以是數組,您可以使用upsert(https://index.html),同時建立索引 – krrish

回答

0

我不認爲有反正做索引時間自動合併的文件。

但是,它應該是可能的acheive什麼導致你打算查詢應該可以通過使用由Elasticsearch提供的查詢選項之一 - 建立索引時一個文檔中,

如..

  • 你可以單獨的索引文件,通過SOURCEIP和使用聚合查詢給DEST_IP

  • 的文檔需要花數如果只是爲了找到dest_ips的SOURCE_IP

此外,如果你想避免重複SOURCE_ID + DEST_ID組合,可以Concat的,並用它作爲文檔_id

希望這有助於。