elasticsearch 2.0 parent child grandchild

孤街浪徒 提交于 2019-12-02 05:16:57

问题


My operation:

parent: country, child: branch, grandchild: employee

PUT /company { "mappings": { "branch": { "_parent": { "type": "country" } }, "employee": { "_parent": { "type": "branch" } } } }

I want add a grandchild employee2, parent is branch:

PUT /company/employee2/_mapping { "employee2": { "_parent": { "type": "branch" } } }

I get wrong message:

{ "error": { "root_cause": [ { "type": "illegal_argument_exception", "reason": "can't add a _parent field that points to an already existing type" } ], "type": "illegal_argument_exception", "reason": "can't add a _parent field that points to an already existing type" }, "status": 400 }

I don't know how can i do. Have any suggestion? Thanks.


回答1:


This is a restriction imposed in elasticsearch 2.0. This is mentioned in breaking changes in 2.0. However the reason behind this this is not clear in the document.

Below is what martijnvg an elasticsearch developer posted on elasticsearch discuss threads:

a new child type can't point to an existing type as parent.

This has to do with the fact that with the new parent/child implementation both parent and child types store ids in a join field. If type becomes a parent after it has been created then parent documents may have been indexed that didn't store their id in the join field. For this reason this restriction exists.

This only applies for new indices created after the upgrade to ES 2.0. For migration purposes this restriction doesn't apply for indices created before the upgrade to ES 2.0. In fact on created on ES 1.x and before the old parent/child implementation is being used.

You can read about it here : https://discuss.elastic.co/t/adding-child-types-in-2-0/33267




回答2:


Ok I have found the problem - you cannot create parent-child relation with an existing type after deleting the index all was fine



来源:https://stackoverflow.com/questions/33670057/elasticsearch-2-0-parent-child-grandchild

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!