URI 뒤에 _search?q=.... 로 검색 가능하다.
curl -XGET http://ip:9200/index/type/_search?q=id:yhkim,hyneeee
여러 index 를 하려면 index 부분에 콤마로 여러개 입력도 가능하다.
지정하지 않을 경우 전체 index에 대해서 검색도 가능하다.
기본적으로 URI 로 검색할 수 있으나 아주 기본적인 것들만 맛보기로 사용하는 수준이고
복잡한 검색을 하려면 Query DSL을 사용한다.
Query DSL 을 이용 할 경우 HTTP 요청 시 Request Body에 조건 등을 json 형태로 입력한다.
Query DSL 에는 match, term, range 등의 다양한 질의 방법이 있다.
주요한 부분만 정리해 본다.
쿼리와 필터의 차이
- 사용처 : 쿼리(주로 Full Text Search에서 사용), 필터(Yes or No 조건으로 사용)
- score : 쿼리(O), 필터(X)
- 캐싱 : 쿼리(X), 필터(O)
- 속도 : 쿼리(느림), 필터(빠름)
Term 필터
- 검색어를 분석하지 않고 검색어 자체를 keyword로 생각하고 매칭
Term 쿼리
- 검색어를 분석하지 않고 검색어 자체를 keyword로 생각하고 매칭, score 포함 반환
Terms 쿼리
- Term 쿼리와 같으나 검색어를 여러개 입력할 수 있으며 포함하는 단어 검색이 가능하다.
- 위의 Term 과 비교해 보면 Term 은 privacyInfo 가 검색어와 같은 것에 대해서만 검색했고
Term의 경우 검색어가 포함된 결과를 검색한다.
매치 쿼리
- 검색어를 분석하여 keyword로 매칭
- 기본적으로 분석된 keyword 들은 or 조건으로 검색된다.
- boolean (default or 조건을 and로 변경 가능) / pharse (단어 사이에 다른 term이 들어가도 검색 가능) 등과 같은 옵션을 줄 수 있다.
'IT > Elasticsearch' 카테고리의 다른 글
Elasticsearch - Aggregation - extended_stats (0) | 2020.09.15 |
---|---|
Elasticsearch - Aggregation - date historgram (0) | 2020.09.15 |
Elasticsearch 검색 - Aggregation (0) | 2020.09.14 |
ElasticSearch - kibana (visualize 분석) (0) | 2020.09.09 |
Elasticsearch 설치 (0) | 2020.09.02 |