Elasticsearch 색인데이터 처리하기


  • 색인데이터 처리하기


색인데이터 처리하기


색인 데이터를 추가, 삭제, 수정하는 방법에 대해 설명한다.

  • _mapping

    • 현재 매핑 정보를 조회한다.

      curl -XGET 'http://localhost:9200/naver_movie/review/_mapping?pretty'
      # 'naver_movie' 색인에 'review' 타입의 매핑 정보를 조회
      
      curl -XGET 'http://localhost:9200/naver_movie/_mapping?pretty'
      # 'naver_movie' 색인의 모든 매핑 정보를 조회
      

    • 기존 매핑 정보를 확장 또는 추가한다.

      curl -XPUT 'http://localhost:9200/naver_movie/review/_mapping?pretty' -d'{
        "review": {
          "properties": {
            "title": {"type": "text"}
          }
        }
      }'
      # naver_movie 색인에 review 타입에 매핑 정보 생성 또는 기존 review 타입에 새로운 필드 추가
      


  • document 추가

    # 새로운 document를 추가한다.
    curl -XPOST 'http://localhost:9200/naver_movie/review?pretty' -d'{
      "title" : "sample Title"
      , "contents" : "sample contents"
    }'
    
    curl -XPOST 'http://localhost:9200/naver_movie/review/1?pretty' -d'{
      "title" : "sample Title"
      , "contents" : "sample contents"
    }'
    # id까지 명시를 하면 해당 id로 document를 생성한다.
    


  • document 수정

    curl -XPOST 'http://localhost:9200/naver_movie/review/1/_update' -d '{
      "doc" : {"user_id" : "guest"}
    }'
    # 1번 id를 가진 document에 "user_id"라는 필드와 그 값을 넣는다.
    # 기존에 해당 필드가 존재했으면 update하고 필드가 없었다면 필드도 함께 생성해준다.
    


  • document 여러개 추가 (_bulk)

    • 넣을 데이터를 정의한 json 파일을 생성한다.

    [review.json]

    { "index" : {"_index" : "naver_movie", "_type" : "review", "_id" : "1"}}
    {"title" : "Bulk Title 1", "contents" : "Build Contents 1", "user_id" : "Buik User1"}
    { "index" : {"_index" : "naver_movie", "_type" : "review", "_id" : "2"}}
    {"title" : "Bulk Title 2", "contents" : "Build Contents 2", "user_id" : "Buik User2"}
    { "index" : {"_index" : "naver_movie", "_type" : "review", "_id" : "3"}}
    {"title" : "Bulk Title 3", "contents" : "Build Contents 2", "user_id" : "Buik User3"}
    


    • 해당 데이터를 엘라스틱서치에 추가한다.
    curl -XPOST http://localhost:9200/_bulk?pretty --data-binary @review.json
    


  • document 삭제

    curl -XDELETE http://localhost:9200/naver_movie/review/1?pretty # document 삭제
    curl -XDELETE http://localhost:9200/naver_movie/review?pretty # type 삭제
    curl -XDELETE http://localhost:9200/naver_movie?pretty # index 삭제
    

    삭제 하고자 하는 document의 id를 입력하고 HTTP의 DELETE 메소드를 사용하면 해당 document가 삭제된다. 뿐만 아니라 해당 index 또는 type을 지정하면 해당 자원이 삭제된다.