2017-01-06 65 views
0

我想下面的查詢:Elasticsearch得到嵌套場

{ 
    "fields": [ 
     "id", 
     "payload", 
     "payload_parsed" 
    ], 
    "query": { 
     "filtered": { 
      "filter": { 
       "bool": { 
        "must": [ 
         { 
          "match": { 
           "id": "some-id-123" 
          } 
         } 
        ] 
       } 
      } 
     } 
    } 
} 

​​是一個JSON字符串,payload_parsed是被剖析的載荷。我不知道有效載荷是什麼,它有多少層次的嵌套。我沒有對payload_parsed進行查詢,而是對id進行查詢,這是我得到的錯誤:"field [payload_parsed] isn't a leaf field"

如何獲取數據?

回答

0

這是一個記錄的功能。在fields中,只能使用葉節點,即沒有子節點的節點。 在你的情況下,你需要通過_source獲得該字段。 請嘗試以下查詢:

{ 
    "fields": [ 
     "id", 
     "payload" 
    ], 
    "_source": "payload_parsed", 
    "query": { 
     "filtered": { 
      "filter": { 
       "bool": { 
        "must": [ 
         { 
          "match": { 
           "id": "some-id-123" 
          } 
         } 
        ] 
       } 
      } 
     } 
    } 
}