입력 형식
http://<호스트>:<포트>/<인덱스>/<도큐먼트타입>/<도큐먼트ID>
1. 도큐먼트 생성
1) PUT으로 입력
PUT 도큐먼트의집합인덱스/_doc/1
{
"name": "kimsky",
"message": "배고파요."
}
PUT 메서드로 입력시 주의 할 것! 기존에 존재하는 도큐먼트 아이디에 데이터를 입력했을 경우 기존 내용이 다 삭제되고 새 값이 입력 된다는 것! 이것을 방지하기 위해서 도큐먼트 타입을 _create로 해서 입력하는 것이 바람직함
기존에 존재하는 도큐먼트 아이디에 입력하면 에러 발생
새로운 아이디로 입력
2) POST로 입력하기
POST를 사용해서 입력하면 도큐먼트ID를 입력하지 않음, 도큐먼트 입력 시 아이디가 자동 생성 됨
PUT 도큐먼트의집합인덱스/_doc
{
"name": "kimsky",
"message": "배고파요."
}
자동 생성된 도큐먼트 아이디를 넣어서 조회
2. 도큐먼트 조회
입력한 도큐먼트 조회
GET 도큐먼트의집합인덱스/_doc/1
3. 삭제
1) 도큐먼트 삭제
DELETE 도큐먼트의집합인덱스/_doc/1
삭제한 도큐먼트 조회: 도큐먼트는 삭제됐지만 인덱스는 조회되고 있음
2) 인덱스 삭제
DELETE 도큐먼트의집합인덱스
삭제한 인덱스 조회
4. 수정하기
1) PUT으로 수정하기
PUT 으로 수정 시 덮어쓰기가 됨
PUT을 이용한 수정은 기존 필드까지 넣어서 업데이트를 해줄 수 있지만 비효율적임
2) POST로 수정하기
POST를 이용해서 수정하는 방법을 이용하는 것이 효율적임: 도큐먼트 타입 _update
POST 도큐먼트의집합인덱스/_update/MUyOyY0Bf1c6PkQK_PlG
{
"doc": {
"add2": "이것은 효율적인 수정 방법"
}
}
5. _bulk CRUD
도큐먼트 타입 _bulk를 이용해서 한번에 CRUD 하기
입력: index, create
수정: update doc
삭제 delete
POST _bulk
{"index":{"_index":"인덱스명", "_id":"도큐먼트아이디1"}}
{"필드명1": "값1"}
{"index":{"_index":"인덱스명", "_id":"도큐먼트아이디2"}}
{"필드명1": "값2"}
{"create":{"_index":"인덱스명", "_id":"도큐먼트아이디3"}}
{"필드명1": "값3"}
{"update":{"_index":"인덱스명", "_id":"도큐먼트아이디1"}}
{"doc":{"필드명1": "값1에서 값2로 수정"}}
{"delete":{"_index":"인덱스명", "_id":"도큐먼트아이디2"}}
6. 검색하기
1) 도큐먼트 타입 _search를 이용해서 검색하기
POST _bulk
{"index":{"_index":"인덱스명", "_id":"도큐먼트아이디1"}}
{"필드명1": "값1 apple lemon fruit"}
{"index":{"_index":"인덱스명", "_id":"도큐먼트아이디2"}}
{"필드명1": "값2 flower tree fruit natural"}
{"create":{"_index":"인덱스명", "_id":"도큐먼트아이디3"}}
{"필드명1": "값3 water see river"}
GET 인덱스명/_search?q=fruit
2) 필드명과 값을 넣어서 검색하기
3) OR 조건 넣어서 검색하기
POST _bulk
{"index":{"_index":"인덱스명", "_id":"도큐먼트아이디1"}}
{"과일": "값1 apple lemon fruit"}
{"index":{"_index":"인덱스명", "_id":"도큐먼트아이디2"}}
{"자연": "값2 flower tree fruit natural"}
{"create":{"_index":"인덱스명", "_id":"도큐먼트아이디3"}}
{"물": "값3 water see river"}
GET 인덱스명/_search?q=자연:fruit 과일:fruit
4) 데이터 본문(body)에 넣어서 검색하기
GET 인덱스명/_search
{
"query": {
"match": {
"과일": "fruit"
}
}
}