Elasticsearch bool query

새로 배운 내용


집계나 조건 검색 할때 query 보다 필터가 더 빠름
이유는 필터는 100% 일치하는 문서만 반환하는 데 비해 쿼리는 입력값과 비슷한 문서도 검색 하고 점수계산을 시행함.

(+) 필터의 이점은 자주 사용하는 필터는 엘라스틱이 자동으로 캐시해준다.
https://www.elastic.co/guide/en/elasticsearch/reference/current/query-filter-context.html

여러개의 필터(조건)를 걸려면 부울 쿼리 사용
https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-bool-query.html

{
  "bool" : {
    "must" : [],
    "should" : [],
    "must_not" : [],
    "filter": []
  }
}

부울 쿼리에서 사용되는 모드

  • must
    • All of these clauses must match. The equivalent of AND.
    • must 안에 있는 쿼리들은 모두 일치해야 함.
  • must_not
    • All of these clauses must not match. The equivalent of NOT.
    • must_not 안에 있는 쿼리들은 일치하지 않아야 함
  • should
    • At least one of these clauses must match. The equivalent of OR.
    • should 쿼리중 n개 이상 매치되어야 함. minimum_should_match 로 최소 몇개가 매치되어야 하는지 조절할 수 있음.
  • filter
    • Clauses that must match, but are run in non-scoring, filtering mode.
    • must match 같이 동작하지만 점수 계산 안 함.

댓글 남기기