ES의 단일 데이터는 document
index는 document의 논리적인 집합.
도큐먼트 접근
http://<호스트>:<포트>/<인덱스>/_doc/<도큐먼트 id>
데이터 입력(PUT)
PUT 이용
PUT my_index/_doc/1
{
"name":"Jongmin Kim",
"message":"안녕하세요 Elasticsearch"
}
이미 있는 인덱스에 아래와 같은 데이터를 PUT명령으로 넣게 되면 이전 document는 사라지고 덮어씌워짐.
PUT my_index/_doc/1
{
"age:":40
}
데이터 보기
GET my_index/_doc/1
데이터 삭제
DELETE my_index/_doc/1 //인덱스에 해당하는 data만 삭제됨.
DELETE my_indx //인덱스 통째로 삭제
수정(POST)
post명령으로 처음 데이터를 만들 때 document id를 안 넣으면 자동으로 생성이 됨.
만들어진 id로 조회 가능
GET my_index/_doc/u_PKRIwB7YbGwB_mQ7D4
id가 중복되면 데이터가 유실될 가능성이 있기 때문에
여러 개의 데이터를 겹치지 않게 저장하려면 POST로 할 수도 잇음
Update
Post 명령으로 _doc대신 _update입력해서 하되 중괄호 안에 "doc":{} 안에 추가 할 데이터를 넣어줘야함.
* 기존에 없던 필드면 추가가되고 있던 필드면 수정
POST my_index/_update/1
{
"doc":{
"age:":40
}
}
벌크 API : 여러가지 명령을 한 번에 실행하고자 할 때
POST _bulk 이용.
한 줄은 명령 줄
한 줄은 데이터 줄
두 줄 한 쌍으로 입력.
POST _bulk
{"index":{"_index":"test", "_id":"1"}} //index는 색인 == 입력
{"field":"value one"}
{"index":{"_index":"test", "_id":"2"}}
{"field":"value two"}
{"delete":{"_index":"test", "_id":"2"}} //delete는 명령줄만 있음. 삭제기 때문에
{"create":{"_index":"test", "_id":"3"}} //index와 똑같이 입력
{"field":"value three"}
{"update":{"_index":"test", "_id":"1"}} //update할 때는
{"doc":{"field":"value two"}} //"doc"안에 추가할 내용 적어줌.
대용량 데이터를 색인할 때는 _bulk 인덱스를 사용해야함.
속도차이가 굉장히 많이 남(10배 이상)
검색API
인덱스 뒤에 _search 사용
1. URI검색
요청 주소에 검색어를 넣어 검색하는 방식을 URI 검색이라고 함.
filed에 two라는 문자열이 있는 도큐먼트(Row)가 검색됨.
GET test/_search?q=two
GET test/_search?q=field:three //필드에 three가 있는 도큐먼트가 검색됨.
GET test/_search?q=field:three AND field:value //and조건을 둘다 만족하는 도큐먼트가 검색됨.
2. Data Body 검색
쿼리문을 사용해서 Data Body로 검색하는 경우가 많음. 쿼리문이 json 도큐먼트로 되어있어서 좋음
"query" : {사용할 쿼리종류 넣음}
가장 많이 사용하는 종류 "match" : {}
"field" : "" //field부분엔 필드명을 입력, ""안에는 찾을 문자열입력
GET test/_search
{
"query": {
"match": {
"field": "value"
}
}
}
참조
모든 내용은 아래 가이드 북에서 참고해 정리했습니다.
큰 도움 받았습니다. . . .
https://esbook.kimjmin.net/04-data/4.2-crud
'공부' 카테고리의 다른 글
Elasticsearch) Bool 복합 쿼리 , Should, 정확값 쿼리, 범위 쿼리 (2) | 2023.12.08 |
---|---|
Elasticsearch) Query DSL (1) | 2023.12.08 |
Elasticsearch 활용) 인덱스 샤드 모니터링 (0) | 2023.12.07 |
Kibana (2) | 2023.12.07 |
Elastic Search 설치 및 환경설정 (1) | 2023.12.07 |