삽입된 데이터는 이전 페이지를 참조해주세요
https://stdhsw.tistory.com/entry/Elasticsearch-%EA%B2%80%EC%83%89%ED%95%98%EA%B8%B01
match 쿼리
match는 term과 비슷해 보이지만 미묘한 차이가 있습니다. match의 경우 기본적인 검색을 수행하는데 사용을 하지만 저 같은 경우 text 필드에서 보다 상세한 검색을 수행할 경우 주로 사용됩니다. 즉 문서의 내용에서 특정 단어가 들어 갔는지 검색할때 많이 사용됩니다.
text 필드 검색하기
message 필드에 "aaa"라는 문자열이 포함된 모든 도큐먼트를 검색합니다.
api | POST http://localhost:9200/my-log-index-2021-08-29/_search |
header | Content-type: application/json |
body | { "query": { "bool": { "must": [ { "match": { "message": "aaa" } } ] } } } |
term 쿼리
term의 경우 match와 비슷한 모습을 취하지만 term은 완전히 같은 데이터를 검색하는데 많이 사용됩니다. 저 같은 경우 주로 keyword타입에서 특정 단어를 검색하는데 많이 사용하고 있습니다.
keyword 타입 검색하기
level 필드의 값이 "info"인 값을 가진 도큐먼트를 검색합니다.
api | POST http://localhost:9200/my-log-index-2021-08-29/_search |
header | Content-type: application/json |
body | { "query": { "bool": { "must": [ { "term": { "level": "info" } } ] } } } |
range 쿼리
range 쿼리는 값의 범위를 검색하는데 사용됩니다.
range쿼리의 파라미터
파라미터명 | 설명 |
gte | 크거나 같다 |
gt | 크다 |
lte | 작거나 같다 |
lt | 작다 |
범위를 이용하여 검색하기
user_id가 2보다 크거나 같으면서 7보다 작은 도큐먼트 검색하기
api | POST http://localhost:9200/my-log-index-2021-08-29/_search |
header | Content-type: application/json |
body | { "query": { "bool": { "must": [ { "range": { "user_id": { "gte": "2", "lt": "7" } } } ] } } } |
'Elasticsearch > Elasticsearch 데이터' 카테고리의 다른 글
Elasticsearch Aggregations#2 cardinality, percentiles, percentile_ranks (0) | 2021.09.15 |
---|---|
Elasticsearch Aggregations#1 min, max, sum, avg, stats (0) | 2021.09.13 |
Elasticsearch 검색하기#2 bool must, must_not, should (0) | 2021.09.08 |
Elasticsearch 검색하기#1 GET, match, match_phrase (1) | 2021.09.06 |
Elasticsearch text, keyword의 차이 (0) | 2021.09.03 |