Elasticsearch 데이터 작업 - 문서 업데이트 자세

5615 단어 elasticsearch

카탈로그

  • 1. 문서 준비
  • 2. 단순 필드name 수정
  • 3. 키워드 형식의 그룹 수정
  • 3.1 일부 수조 원소 추가
  • 3.2 일부 그룹 요소 삭제
  • 참조 문서:https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-update.html

    1. 문서 준비


    주의: 다음 문서는es6 기반입니다. 새로운es7은 사용자 정의 type을 지원하지 않습니다. 즉people 기본은_doc
    PUT  hello/people/1
    {
      "name":"zhangsan",
      "age":24,
      "class":101,
      "hob":["football","basketball"]
    }
    

    2. 간단한 필드 수정name


    형식:
    POST index/type/id/_update
    {
       "doc" : {
           "field_name" :"field_value"  
       }
    }
    

    이로써 위 문서의name을lisi로 변경합니다.
    POST hello/people/1/_update
    {
       "doc" : {
         "name":"lisi"
       }
    }
    

    [주의] URL이 지정되지 않으면 _update 요청 방식은 POST 기본적으로 전체 문서를 교체합니다.

    3. 키워드 형식의 그룹 수정


    3.1 일부 배열 요소 추가


    예를 들어 우리는 hob에 취미write를 추가하고 기존의 hob를 보존하고 싶다
    POST hello/people/1/_update
    {
       "script" : {
            "source": "ctx._source.hob.add(params.hob)",
            "lang": "painless",
            "params" : {
                "hob" : "write"
            }
        }
    }
    

    3.2 부분 배열 요소 삭제


    예를 들어 우리는 hob에서 찾고 싶습니다 baskball 있으면 삭제하고 없으면 보류합니다
    POST hello/people/1/_update
    {
       "script" : {
            "source": "if (ctx._source.hob.contains(params.hob)) { ctx._source.hob.remove(ctx._source.hob.indexOf(params.hob)) }",
            "lang": "painless",
            "params" : {
                "hob" : "basketball"
            }
        }
    }
    

    좋은 웹페이지 즐겨찾기