본문 바로가기

TroubleShooting/Elasticsearch

Elasticsearch 기본 REST API

728x90

도큐멘트(document) 추가

: 생성할때는 메소드 핸들러를  PUT 으로 할수도 있지만, 아래 예와 같이 id 값을 지정할때 POST 로 메소드를 선택해야 한다.

$ curl -XPOST 'localhost:9200/books/es/1' -d '{"title":"Elasticsearc Server", "published": 2013}'

$ curl -XPOST 'localhost:9200/books/es/2' -d '{"title":"Mastering Elasticsearch", "published": 2013}'

$ curl -XPOST 'localhost:9200/books/solr/1' -d '{"title":"Apache Solr 4 Cookbook", "published": 2012}'


인덱스 맵핑(mapping)

$ curl -XGET 'localhost:9200/books/_mapping'

$ curl -XGET 'localhost:9200/books/_mapping?pretty'

$ curl -XGET 'localhost:9200/shakespeare/_mapping?pretty'


도큐먼트 변경

$ curl -XPOST http://localhost:9200/books/es/1/_update -d '{"script": "ctx._source.title = \"Elasticsearch Server\""}'

--> type 이 es 이고, id 1 인 데이터의 title 값을 "Elasticsearc Server" 에서 "Elasticsearch Server" 로 변경.


검색(retrieve)

$ curl -XGET 'localhost:9200/books/_search?pretty'

--> books 인덱스 전체 내용 검색 결과를 JSON 포맷팅한 결과로 표시

$ curl -XGET 'localhost:9200/books,shakespeare/_search?pretty'

--> books, shakespeare 인덱스 전체 내용을 표시

$ curl -XGET 'localhost:9200/books/_search?pretty&q=title:elastic'

--> title 값이 "elastic" 인 내용을 표시. 단어 비교를 equal 로 하기때문에 검색 결과가 없음

$ curl -XGET 'localhost:9200/books/_search?pretty&q=title:elasticsearch'

--> title 값이 "elasticsearch" 인 내용을 표시. 입력 데이터는 "Elasticsearch" 이지만 대소문자 구분안하기 때문에 검색 결과는 2건


분석(analyze)

$ curl -XGET 'localhost:9200/books/_analyze?field=title' -d 'Elasticsearch Server'


검색 파라미터

$ curl -XGET 'localhost:9200/books/_search?pretty&q=published:2013'

--> published 값이 2013 인 데이터 검색

$ curl -XGET 'localhost:9200/books/_search?pretty&q=elasticsearch&df=title'

--> df : 기본 검색 필드를 결정.

$ curl -XGET 'localhost:9200/books/_search?pretty&q=published:2013&explain=true&df=title&default_operator=AND'

--> explain 값이 true 이면, 해당 도큐먼트의 explain 정보(_explanation json 객체 정보가 추가됨)를 표시함.


정렬(sort)

$ curl -XGET 'localhost:9200/books/_search?pretty&q=published:2013&sort=published:desc'

--> published 가 2013 인 도큐먼트 데이터를 내림차순 정렬

$ curl -XGET 'localhost:9200/books/_search?pretty&sort=published:desc'

--> 내림차순(desc) 정렬

$ curl -XGET 'localhost:9200/books/_search?pretty&sort=published:asc'

--> 오름차순(asc) 정렬


결과값 제한(result window)

$ curl -XGET 'localhost:9200/books/_search?pretty&size=5&from=10'

size : 기본값은 10. 최대 결과값 수.

from : 기본값은 0. n 번째 값 이후부터 결과값이 반환되도록 설정. 10 이면 11번째 데이터부터 결과값이 반환됨.