[ElasticSearch] 검색 쿼리 (1)
쿼리 종류
leaf query
- 특정
field
에서 term
을 찾는 쿼리
match
, term
, range
쿼리 등
compound query
full text query
- 전문 쿼리 : 전문 검색 하기위한 쿼리
text
타입으로 매핑된 필드에 대해 검색 권장
- match query, match phrase query, multi-match query, query string query 등
match query
text
타입 필드에서 특정 term 을 검색할 때 사용
- 토큰화된 검색어에 대해 검색하므로, 대부분 대소문자 구분이 없음
- 일반적으로 analyzer 에서 소문자 변경이 이루어지므로. (예외 있음)
match phrase query
- 검색하려는 모든 단어가 있어야하고, 순서가 일치해야 검색
- 검색어 토큰화는 match query 와 동일하나, 순서 일치 여부 추가된 형태
- 순서가 바뀌거나, 중간에 다른 단어 포함시 매칭되지 않음
- ※ 검색시 많은 리소스를 요구하므로 주의
multi match query
- 여러 필드에서 검색하는 쿼리
text
타입 필드에 사용 권장
- 특정 필드에
^
+ 숫자 조합으로 가중치 부여 가능
term level query
- 정확히 일치하는 term 을 찾기 위한 쿼리
keyword
타입으로 매핑된 필드에 대해 검색 권장
- term qeury, terms query, fuzzy query 등
term query
- 정확히 일치하는 term 에 대해서만 매칭되는 쿼리
- analyzer 로 토큰화 되지 않음
terms query
- 여러 term 들을 검색
- analyzer 를 거치지 않으므로
keyword
타입에 사용, 대소문자 구분
reference