1
我试图导入与Postgres的嵌套对象的一些数据使用json_agg到elasticsearch,但ES不保存像嵌套对象的数据,但保存这样JSON领域从Postgres的进口elasticsearch
"some_objects": {"type": "json", "value": "[{\"a\":\"1\"}]"}
而不是:
"some_objects": [{"a":"1"}]
它每次都发生,当我在查询中使用json类型(我通过“logstash”导入数据)。 如果我需要导入连接的对象,我使用hstore,它的作品,但我不能使用hstore多个对象,并且不幸的是我不能数组而不是json。
我使用的是进口数据的SQL看起来像这样
SELECT a.*,
(SELECT json_agg(hstore(so)) AS some_objects FROM
(SELECT * FROM c WHERE a.id=c.a_id) AS so),
(SELECT hstore(ao) AS another_object FROM (SELECT b.*) AS ao),
FROM a_table AS a
LEFT OUTER JOIN b ON a.id=b.a_id
在映射数据elasticsearch我设置:
...
"some_objects": {
"type": "nested"
},
"b": {
"type": "object"
}
并成功适用于“B”,并没有按不为“some_objects”工作。显然它依赖于json在postgres中的类型。 任何想法如何我可以解决它?
非常感谢。
它看起来像这样http://stackoverflow.com/questions/21081196/jdbc-elasticsearch-and-postgresql-json-data-type-solved,但我不使用河水 – Alexey