在ES中,我們經常需要將一些字段拆分成各自的json。比如有這樣的一個數據:
{ "name": "小王", "age": 25, "address": "北京市朝陽區", "phone": "138xxxxxx" }
如果我們需要將這個數據拆分成如下的幾個json:
{ "name": "小王", "age": 25 }, { "address": "北京市朝陽區", "phone": "138xxxxxx" }
那么該怎么做呢?
首先,我們需要借助ES的聚合功能。具體來說,我們需要使用ES的nested聚合,并將原數據按“name”和“age”的方式進行拆分。代碼如下:
{ "aggs": { "names": { "nested": { "path": "name" }, "aggs": { "name": { "terms": { "field": "name" }, "aggs": { "age": { "terms": { "field": "age" } } } } } }, "addresses": { "nested": { "path": "address" }, "aggs": { "address": { "terms": { "field": "address" }, "aggs": { "phone": { "terms": { "field": "phone" } } } } } } } }
代碼中,我們將原數據按“name”和“age”的方式拆分,并在“name”下分別聚合出各自的“age”。在“address”下,我們則按照同樣的方式拆分,聚合出各自的“phone”。這樣,我們就拆分出了兩個json。
最后,我們可以將拆分出來的json分別存儲到不同的索引中,供后續使用。
上一篇es怎么導入json文件
下一篇python 英文過濾