일래스틱서치에서 특정 필드를 추가하려면 다음과 같이 매핑을 추가한다.
* 필드 삭제하기
사실상 필드 삭제는 없다. 루씬의 색인 기능 때문에 따로 삭제가 불가능해서 새롭게 색인을 구성해야 한다. 전문용어로 reindex 이다.
그러나, 필드 삭제는 못하지만, 데이터만 삭제는 부분 변경(partial update)만으로 가능하다.
* 추가된 필드에 데이터 저장하기
추가된 필드에 데이터를 저장하기 위해서 PUT http 메소드를 실행하면 기존 데이터는 덮어쓰인다. 따라서 이 부분은 부분 변경 (partial update)를 사용해야 한다.
새롭게 추가된 필드에 데이터를 변경하려면 부분 변경(partial update)를 실행한다. 두 가지 방법이 있다.
1. _update 호출
curl -XPOST http://localhost:9200/blog/comment/8130295/_update -d '
{
"doc" : {
"url" : "http://www.google.com"
}
}
2. 스크립트 기능 이용
}'
verion이 하나 추가된 다큐먼트 데이터가 생성된다. 확인은 다음과 같이 할 수 있다.
curl -XGET localhost:9200/blog/comment/8130295
upsert 라는 것이 있는다. 해당 필드의 데이터의 값이 없다면 초기화값으로 넣을 수 있는 값이다.
curl -XPOST http://localhost:9200/blog/comment/8130295/_update -d '
{
"script" : "ctx._source.views+=1",
"upsert": {
"views": 1
}
}
* 참고
https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html
https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-update.html
https://www.elastic.co/guide/en/elasticsearch/guide/current/partial-updates.html
'Elasticsearch' 카테고리의 다른 글
[elasticsearch] function score query 공부 할 싸이트 (0) | 2015.06.17 |
---|---|
[elasticsearch] groovy script 동작 가능 여부 설정 (0) | 2015.06.17 |
[elasticsearch] aggregation 2번 사용 vs subaggregation 1번 사용 (0) | 2015.06.05 |
[elasticsearch] count (개수 계산) api (0) | 2015.06.03 |
[elasticsearch] Query vs Filter (0) | 2015.06.01 |