term
쿼리, 마지막 단어는 prefix
쿼리로 bool 쿼리 처리한다.analyzer
옵션 추가minimum_should_match
, operator
적용 가능prefix
쿼리 적용되는 마지막 단어를 제외하고 term
쿼리 적용되는 각 단어는 아래 옵션들이 적용된다.fuzziness
, prefix_length
, max_expansions
, fuzzy_transpositions
, fuzzy_rewrite
GET /_search
{
"query": {
"match_bool_prefix" : {
"message" : "quick brown f"
}
}
}
quick
, brown
은 term 쿼리, 마지막 단어인 f
만 prefix 쿼리로 적용하여 bool 쿼리 should 처리GET /_search
{
"query": {
"bool" : {
"should": [
{ "term": { "message": "quick" }},
{ "term": { "message": "brown" }},
{ "prefix": { "message": "f"}}
]
}
}
}
prefix
쿼리, 그외 나머지 단어는 match_phrase
쿼리로 검색GET /_search
{
"query": {
"match_phrase_prefix": {
"message": {
"query": "quick brown f"
}
}
}
}
주의) 자동완성에 사용하는 것은 부적합
quick brown f
로 검색했을 때, quick
, brown
이 phase 매칭되는 문서에서 정렬된 term dictionary 에서 첫 50개에 대해서만 f 로 시작하는 term 이 있는지 검색한다.자동완성은 edge ngram
을 사용하는 것이 더 유리