Tip & Tech/Tech
ELK match와 term 차이 / query와 filter 차이
나비와꽃기린
2024. 9. 25. 16:05
match 와 term의 차이
match | text | 쿼리를 수행하기전에 분석기를 통해 텍스트르 분석한 후 검색을 수행. text 데이터타입을 검색할때 match를 사용. ex) match로 검색시 질의어가 "this is something" 이고, standard analyzer가 사용되고 있다면 질의어가 this, is, something 으로 쪼개져 역색인 검색이 수행된다. 또한 match 쿼리는 기본적으로 OR로 동작한다. 따라서 위예시처럼 분리된 term 중 this,is,something 중 하나의 term만 일치하더라도 검색결과로 인정된다. 물론 operator로 "AND" 등으로 수정할 수 있다. |
|
term | keyword | 별도의 분석작업을 수행하지않고 입력된 텍스트가 존재하는 문서를 찾음.(지정한 필드의 질의어가 정확히 일치하는 문서를 찾는다) keyword 데이터타입을 검색할때 term를 사용. |
# 정확히 매칭되지 않거나 대소문자가 다를경우 조회되지 않음 POST [인덱스]/_search { "query": { "term": { "[필드]": "[검색할 키워드]" } } } |
필드 설명
must: [필드] | AND [컬럼] = [조건] |
must_not: [필드] | AND [컬럼] != [조건] |
should: [필드] | OR [컬럼] = [조건] |
filter: [필드] | [컬럼] IN ( [조건] ) |
Query와 filter 의 차이
|
text와 keywd의 차이보통 full text 검색에 사용할 문자열필드를 text로, 집계나 정렬에 사용할 문자열 필드를 keyword로 설정한다.