"bool": {
"must": [
{ "match": { "시군명": "군포시" } },
{
"wildcard": {
"업종명(종목명)": `*${category}*`
}
}
]
}
검색 할때 해당단어가 들어간 데이터를 가져오는 쿼리
wildcard :{"ㄴㄴ":"ㄴㅇㅁㄴㅇ"}
Matches documents that have fields matching a wildcard expression (not analyzed). Supported wildcards are , which matches any character sequence (including the empty one), and ?, which matches any single character. Note this query can be slow, as it needs to iterate over many terms. In order to prevent extremely slow wildcard queries, a wildcard term should not start with one of the wildcards * or ?. The wildcard query maps to Lucene WildcardQuery.
https://www.elastic.co/guide/en/elasticsearch/reference/0.90/query-dsl-wildcard-query.html
but 생가처럼 안될때가 많다.
wildcard query 가 term level query 이기 때문
https://www.elastic.co/guide/en/elasticsearch/reference/current/term-level-queries.html 참고
RDBMS 의 like ‘%keyword%’ 와 같은 형태를 기대한다면 낭패를 볼것이다.
term 즉 inverted index 를 기준으로 결과를 찾는다는 의미
다시 말해 analyzed 된 term keyword 가 있어야 하며, 문서를 색인할 때 토크나이징된 단어가 아니라면 inverted index에 들어 있지 않기 때문에, 아예 비교 대상에 포함되지 않는다.