Elasticsearch04_2_(퀴즈로 엘라스틱서치 익히기)
2024. 12. 31. 17:55ㆍELK가_뭐지/Elasticsearch
퀴즈로 엘라스틱서치 익히기
데이터 입력(_bulk)
post tourcompany/customerlist/_bulk?pretty
{"index" : {"_id":"1"}}
{"name":"Alfred", "phone":"010-1234-5678", "holiday":"Disneyland", "departure_date":"2017/01/20"}
{"index" : {"_id":"2"}}
{"name":"Huey", "phone":"010-2222-4444", "holiday":"Disneyland", "departure_date":"2017/01/20"}
{"index" : {"_id":"3"}}
{"name":"Naomi", "phone":"010-3333-5555", "holiday":"Hawaii", "departure_date":"2017/01/10"}
{"index" : {"_id":"4"}}
{"name":"Andra", "phone":"010-6666-7777", "holiday":"Borabora", "departure_date":"2017/01/11"}
{"index" : {"_id":"5"}}
{"name":"Paul", "phone":"010-9999-8888", "holiday":"Hawaii", "departure_date":"2017/01/10"}
{"index" : {"_id":"6"}}
{"name":"Colin", "phone":"010-5555-4444", "holiday":"Venice", "departure_date":"2017/01/16"}
- tourcompany 인덱스에서010-3333-5555를 검색하십시오.
-
# url get tourcompany/customerlist/_search?q=phone:"010-3333-5555" # query dsl get /tourcompany/_search { "query" : {"match_phrase": {"phone": "010-3333-5555"}} }
-
- 휴일여행을디즈니랜드로떠나는사람들의핸드폰번호를조회하십시오(phone필드만출력).
-
# url get tourcompany/customerlist/_search?q=holiday:"Disneyland"&_source=phone # query dsl GET tourcompany/_search { "query":{"match_phrase": { "holiday": "Disneyland" }}, "_source": "phone" }
-
- departure date가 2017/01/10과 2017/01/11인 사람을 조회하고 이름 순으로 출력하십시오. (name과 departure date 필드만출력)
-
(name필드는 text타입이라 정렬이 안된다. 때문에# url get tourcompany/customerlist/_search?q=departure_date:"2017/01/10" OR "2017/01/11"&_source=name,departure_date&sort=name.keyword # query dsl get tourcompany/customerlist/_search { "query":{ "bool": { "should": [ {"match": {"departure_date": "2017/01/10"}}, {"match": {"departure_date": "2017/01/11"}} ] } }, "_source":["name","departure_date"], "sort":[{"name.keyword":"asc"}] }.keyword를 사용함.)
-
- BoraBora 여행은공항테러사태로취소됐습니다.BoraBora여행자의명단을삭제해주십시오.
-
DELETE 메서드를 사용할 것 같았지만# url POST tourcompany/customerlist/_delete_by_query?q=holiday:"Borabora" # query dsl POST tourcompany/_delete_by_query { "query" : {"match" : {"holiday":"Borabora"}} }_delete_by_query를 사용한다는 것!!
-
- Hawaii 단체 관람객의 요청으로 출발일이 조정됐습니다. 2017/01/10에 출발하는 Hawaii의 출발일을 2017/01/17일로수정해주십시오
-
script 필드POST tourcompany/customerlist/_update_by_query { "script": { "inline": "ctx._source.departure_date='2017/01/17'", "lang": "painless" }, "query": { "bool": { "must": [ {"match": {"departure_date": "2017/01/10"}}, {"match": {"holiday": "Hawaii"}} ] } } }
업데이트하려는 필드를 지정하고 새 값을 설정하는데 사용inline: 실행할 스크립트를 작성ctx._source: 현재 문서의 데이터를 나타낸다.ctx._source.departure_date:문서의departure_date필드 참조='2017/01/17':departure_date의 값을2017/01/17으로 변경
lang: 스크립트 언어 지정, Elasticsearch 기본 스크립팅 언어painless사용함. - query 필드
업데이트 대상 문서를 필터링하는 조건을 정의
-
'ELK가_뭐지 > Elasticsearch' 카테고리의 다른 글
| Elasticsearch05_집계(Aggregations) (0) | 2024.12.31 |
|---|---|
| Elasticsearch01 (0) | 2024.12.31 |
| Elasticsearch04_1_(검색API_URL을 이용한 검색) (2) | 2024.12.30 |
| Elasticsearch04_(검색 API) (2) | 2024.12.28 |
| Elasticsearch03_(Batch 프로세스 실행하기) (2) | 2024.12.28 |