elasticsearch
Elasticsearch의 must(and)와 should(or) 쉽게 이해하기

Elasticsearch의 must(and)와 should(or) 쉽게 이해하기

일상 생활에서의 must와 should

you must study

you must study 라는 문장은 "너 공부 안하면 디질 줄 알아 무조건 해!!" 라는 느낌이 있습니다.

듣는 입장에서는 "안하면 죽겠구나 해야겠다" 라고 생각될 수 있고

you should study

you should study 라는 문장은 "너 공부 좀 해야 해" 라는 느낌이고

듣는 입장에서는 "귀찮은데 할까 말까" 라는 생각이 듭니다.

위 내용이 elasticsearch 그대로 반영됩니다.

must query

{
  "query": {
    "bool": {
      "must": [
        { "match": { "field1": "value1" }},
        { "match": { "field2": "value2" }}
      ]
    }
  }
}

무조건 주어진 조건이 일치해야 하며, 일치 안하면 디져! 느낌의 쿼리입니다

그렇기 때문에 두 조건에 대해서 AND 로 성립합니다.

should query

{
  "query": {
    "bool": {
      "should": [
        { "match": { "field1": "value1" }},
        { "match": { "field2": "value2" }}
      ]
    }
  }
}

약간 풀어주는 느낌입니다 일치 해야 돼 라는 뉘앙스라

듣는(elasticsearch) 입장 에서는 에이~ 둘다 하기 힘든데 하나만 하자 로 인식될 수 있습니다.

그렇기 때문에 두 조건에 대해서 하나만 일치해도 되는 OR 이 성립합니다.