엘라스틱서치
4. 데이터 처리
by N.Damgom
2021. 8. 31.
4. 데이터 처리
- 엘라스틱서치는 검색, 저장, 설정 등 모든 정보를 JSON 도큐먼트 형식으로 주고받는다.
- 엘라스틱서치는 자원별로 고유한 URL을 매핑해서 사용한다.
- REST API를 활용해 CRUD가 가능하다.
- curl 명령어나 postman, kibana devtools를 사용할 수 있다. (키바나 포트는 5601)
CRUD
- 도큐먼트를 접근할 때는 <인덱스명>/_doc/<id> 처럼 고정자 _doc 을 사용한다.
curl -XPUT "http://localhost:9200/my_index/_doc/1" -H 'Content-Type: application/json' -d'
(d는 데이터 입력 옵션)
- 데이터를 입력할 때는 PUT 메서드를 사용한다.
- PUT 메서드 사용시 아이디는 자동으로 생성되지 않는다.
-
PUT my_index/_doc/1
{
"name":"Pangyo Kim",
"message":"안녕하세요 Elasticsearch"
}
- 문서를 새로 생성 시 결과로 "result": "created"가 표시되며 덮어써질경우 "updated"가 표시된다.
- 덮어씌워지는 것을 방지하기 위해서는 _create를 사용하면 된다.
- 조회는 GET 메서드를 사용한다.
GET my_index/_doc/1
- 문서의 내용 "_source"에 있다.
- 삭제는 DELETE 메서드를 사용한다. 도큐먼트와 인덱스 모두 사용가능하다.
- 반환 결과는
"result": "deleted"
or "found": false
- 인덱스 삭제시 "acknowledged": true 응답을 받는다.
- 수정은 POST 메서드를 사용한다.
- id를 지정하지 않는 경우 임의의 문자열로 도큐먼트 아이디가 생성된다.
-
POST my_index/_doc
{
"name":"Pangyo Kim",
"message":"안녕하세요 Elasticsearch"
}
- _update 를 사용할 경우 일부 필드만 변경할 수 있으나 내부적으로는 새로 생성된다.
- 해당 문서의 "_version" 값이 하나 증가한다.
-
POST my_index/_update/1
{
"doc": {
"message":"안녕하세요 Kibana"
}
}
벌크 API
검색 API
출처: https://esbook.kimjmin.net