By now, you have probably realized that multiword match
queries simply wrap the generated term
queries in a bool
query. With the default or
operator, each term
query is added as a should
clause, so at least one clause must match. These two queries are equivalent:
이제, 다중 단어 match query는, 생성된 term
query를 단순히 bool
query로 감싼 것이라는 것을 알게 되었을 것이다. 각 term
query가, 기본인 or
operator와 함께, should
절에 추가된다. 따라서, 최소한 하나 이상은 일치해야 한다. 아래 두 query는 완전히 똑같다.
{ "match": { "title": "brown fox"} }
{ "bool": { "should": [ { "term": { "title": "brown" }}, { "term": { "title": "fox" }} ] } }
With the and
operator, all the term
queries are added as must
clauses, so all clauses must match. These two queries are equivalent:
and
operator를 사용하면, 모든 term
query가 must
절에 추가된다. 따라서 모든(all) 절은 반드시 일치해야 한다. 아래 두 query는 완전히 똑같다.
{ "match": { "title": { "query": "brown fox", "operator": "and" } } }
{ "bool": { "must": [ { "term": { "title": "brown" }}, { "term": { "title": "fox" }} ] } }
And if the minimum_should_match
parameter is specified, it is passed directly through to the bool
query, making these two queries equivalent:
그리고, minimum_should_match
매개변수가 지정되면, 그것은 바로 bool
query를 거치게 된다. 아래 두 query는 완전히 똑같다.
{ "match": { "title": { "query": "quick brown fox", "minimum_should_match": "75%" } } }
{ "bool": { "should": [ { "term": { "title": "brown" }}, { "term": { "title": "fox" }}, { "term": { "title": "quick" }} ], "minimum_should_match": 2 } }
3개의 절만 있기 때문에, |
Of course, we would normally write these types of queries by using the match
query, but understanding how the match
query works internally lets you take control of the process when you need to. Some things can’t be done with a single match
query, such as give more weight to some query terms than to others. We will look at an example of this in the next section.
물론, 일반적으로 match
query를 사용하여, 이런 형태의 query를 작성할 수도 있지만, match
query가 내부적으로 동작하는 방법을 이해하면, 필요한 경우에 프로세스를 제어할 수 있다. 단일 match
query로 할 수 없는 것(특정 검색어에 대해 다른 검색어보다 더 많은 비중을 주는 query)들이 있다. 다음에서 이런 query의 예를 살펴보도록 하자.
'2.X > 2. Search in Depth' 카테고리의 다른 글
2-2-3. Multiword Queries (0) | 2017.09.30 |
---|---|
2-2-4. Combining Queries (0) | 2017.09.30 |
2-3-6. Boosting Query Clauses (0) | 2017.09.30 |
2-2-7. Controlling Analysis (0) | 2017.09.30 |
2-2-8. Relevance Is Broken! (0) | 2017.09.30 |