어떻게 삽입하는 새로운 노드에 탄력 있는 중첩된 atributte

0

질문

설명 POC 의 내 문제입니다. 나는 이 지수를 매핑:

{
    "properties": {
        "level_l": {
            "type": "nested",
            "properties": {
                "level_2-1": {
                    "type": "keyword"
                },
                "level_2-2":{
                    "type": "nested",
                    "properties": {
                        "level_3-1": {
                            "type": "keyword"
                        },
                        "level_3-2": {
                            "type": "keyword"
                        },
                        "level_3-3": {
                            "type": "keyword"
                        }
                    }
                }
            }
        }
    }
}

추가 이 문서는:

{
    "level_1": [
        {
            "level_2-1": "a",
            "level_2-2": [
                {
                    "level_3-1": "c1",
                    "level_3-2": "c2",
                    "level_3-3": "c3"
                }
            ]
        },
        {
            "level_2-1": "b",
            "level_2-2": [
                {
                    "level_3-1": "c1",
                    "level_3-2": "c2",
                    "level_3-3": "c3"
                }
            ]
        }
    ]
}

필요해 추가로 새로운 노드에 level_2-2,때 level_2-1=. 나는 그것을 시도를 사용하여 가이드로에서 노트 https://iridakos.com/programming/2019/05/02/add-update-delete-elasticsearch-nested-objects 그러나 나는 할 수 없었다.

어떤 아이디어가?

1

최고의 응답

0

튜토리얼에서와 같 이 당신에 연결,당신이해야의 ID 를 개체할 수정할 수 있습니다. 예를 거기에서:

POST iridakos_nested_objects/human/1/_update
{
  "script": {
    "source": "ctx._source.cats.add(params.cat)",
    "params": {
      "cat": {
        "colors": 4,
        "name": "Leon",
        "breed": "Persian"
      }
    }
  }
}

위의 예에서, 1 ID 의 기록이다. 을 대체할 필요가 있을 것으로 기록할 수정할 수 있습니다.

는 경우에 수정할 모든 레코드를 사용해야 합니 update_by_query API. 매핑을 이 예는 튜토리얼 위에,그것은 다음과 같다:

POST INDEX_NAME_HERE/_update_by_query
{
  "script": {
    "source": "ctx._source.cats.add(params.cat)",
    "params": {
      "cat": {
        "colors": 4,
        "name": "Leon",
        "breed": "Persian"
      }
    }
  },
  "query": {
    "match_all": {}
  }
}

이 경우에,당신 업데이트할 필요가 쿼리 부분(끝)모든 기록을 업데이트하려. 나는 당신은 아마을 쿼리에는 중첩된 개체는,하지만 명백하지 않습에서 당신의 질문입니다.

2021-11-22 13:11:25

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................