2016-07-20 67 views
2

如何將以下JSON嵌套數組對象插入名爲"index_19_7_16"的Elasticsearch索引?Elasticsearch:如何將嵌套的Json數組對象插入Elasticsearch索引

{ 
     "hour": [ 
     { 
      "time": "00:00", 
      "master_id": [ 
      { 
       "m.id": 111, 
       "m.value": 222 
      }, 
      { 
       "m.id": 113, 
       "m.value": 444 
      } 
      ], 
      "child_id": [ 
      { 
       "c.id": 77, 
       "c.value": 222 
      }, 
      { 
       "c.id": 7751, 
       "c.value": 444 
      } 
      ] 
     }, 
     { 
      "time": "01:00", 
      "master_id": [ 
      { 
       "m.id": 111, 
       "m.value": 222 
      }, 
      { 
       "m.id": 113, 
       "m.value": 444 
      } 
      ], 
      "child_id": [ 
      { 
       "c.id": 77, 
       "c.value": 222 
      }, 
      { 
       "c.id": 7751, 
       "c.value": 444 
      } 
      ] 
     } 
     ] 
    } 

我是否需要在之前創建映射或只是將JSON動態插入到彈性索引中。

回答

2

您需要預先創建映射並特別提及一些字段必須是"type":"nested"否則ES將只創建對象。這裏我特指nested type of fields in ES

如果按嵌套您的意思只是文檔的嵌套性質,那麼您不必做任何事情。

+0

Andrei Stefan:謝謝,還有什麼方法可以更好地搜索/聚合問題,可以創建「type」:「嵌套」還是隻插入Json而不用任何映射? – VitalyT

+0

「嵌套」故事是關於將字段值與來自同一個「嵌套」字段的另一個字段值相關聯的。在你的情況下,如果你將來的查詢關心''m.id「:111'被視爲與''m.value':222'」連接「,那麼你需要'嵌套'。 –

+0

我的未來聚合將總和所有「m.id」:111,小時範圍內的值。例如:SUM + = 00:00-02:00所有來自「m.id」的值:111 – VitalyT

相關問題