-
Elasticsearch bool 쿼리내가 공부하고 싶은 IT/지식정리 2023. 1. 1. 20:55
bool 쿼리 다른 쿼리들을 조합하여 결과와 score 들을 결합하거나 동작을 변경함. 즉 bool 하위의 여러 쿼리들을 결합하여 결과를 낼때 사용함
bool 은 query 와 filter 에서의 동작이 상이함. query로 사용할 때는 score 가 결합되어 일치하는 절일 많을 수록 더 좋음bool의 기본 쿼리
- must: 모든 필터가 매치되어야 함(and)
- filter: 이전 포스팅에서 설명한 filter 와 동작은 동일. score를 무시하고 결과가 캐싱됨
- should: minimum_should_match 개의 필터에 매치되어야 함 (or)
- minimum_should_match
must 또는 filter 같이 사용되면 기본값이 0, score에 영향만 줌
단독으로 사용시 기본값이 1
- minimum_should_match
- must_not: 문서가 필터에 매치되지 않아야 함(not). filter 절에서 실행되며 filter 와 같이 score를 무시하고 결과가 캐싱됨
예)
GET /cn-test-idx/_search { "query": { "bool": { "should": [ { "match": { "kor_contents": "자비스" } }, { "match": { "kor_contents": "여러" } } ], "minimum_should_match": 1, "filter": [ { "term": { "keyword_field": "1번" } } ] } } }
위 쿼리는 아래의 쿼리와 결과가 같다.
GET /cn-test-idx/_search { "query": { "bool": { "must": { "bool": { "should": [ { "match": { "kor_contents": "자비스" } }, { "match": { "kor_contents": "여러" } } ] } }, "filter": [ { "term": { "keyword_field": "1번" } } ] } } }
'내가 공부하고 싶은 IT > 지식정리' 카테고리의 다른 글
2022년 회고 (1) 2023.01.30 Elasticsearch term & match (0) 2023.01.01 Elasticsearch DSL 기본 (0) 2023.01.01 Elasticsearch Inverted Index 의 이해 (0) 2022.12.25 Elasticsearch 분석기 테스트 (0) 2022.12.25