-
엘라스틱서치 text, keyword 타입공부하기/엘라스틱서치 2024. 2. 12. 22:43
text, keyword 두 타입 모두 문자열 자료형을 담는 타입이다.
두 타입은 정렬과 집계, 스크립트 작업을 수행할 때 동작의 차이가 있다 -> keyword 타입 우세
사전지식
- 역색인 ( inverted index )
-> "나는 최고다" = "나는", "최고다" 와 같이 공백 문자로 문자열을 잘랐을 때 각각의 문자열을 토큰이라고 한다.
-> 문자열을 토큰으로 나누는 과정을 토크나이징이라고 한다.
-> 이렇게 토크나이징된 결과를 저장하는 결과가 역색인이다.
- 애널라이저
-> 0개 이상의 character filter, 1개의 tokenzier, 0개 이상의 token filter로 구성된다.
-> 역색인을 만들어내기 위해서 필요한 토큰(token)을 생성하는 과정에서 동작
- 노멀라이저
-> keyword 타입 필드
-> 애널라이저와 다르게 단일 토큰을 생성한다.
text
- 애널라이저가 적용된 후 색인된다.
- standard 애널라이저 외 다른 애널라이저를 지정할 수 있다.
- custom 애널라이저를 사용하여 다양한 방법으로 텍스트를 분석해 색인할 수 있다.
- 들어온 문자열을 가지고 그대로 역색인을 구성하는 것이 아니라 값을 분석하여 여러 토큰으로 쪼갠다.
- 여러개로 쪼개진 토큰을 통해 역색인을 구성한다.
- 쪼개진 토큰에 후처리 작업 후 최족적으로 역색인에 들어가는 형태를 term이라고 한다.
- mysql 텍스트 검색할 때 like와 비슷하다고 느꼇다
- 전문 검색에 적합
- fielddata 캐시 사용
- 기본값은 false이다.
- 역색인 전체를 읽어들여 힙메모리에 올리기 때문에 문제를 발생시킬 수 있다.
- 이미 분석된 term을 이용해 집계 등을 수행하기 때문에 의도와 다른 결과가 나올 수 있다.
- text, annotated_text만 사용
keyword
- 들어온 문자열 값을 쪼개지 않고 역색인을 구성
- 노멀라이저 적용
- 간단한 전처리만 거친 뒤 커다란 단일 텀으로 역색인을 구성
- mysql 텍스트 검색할 때 = 과 비슷하다고 느꼇다
- 일치 검색에 적합
- doc_values 캐시 사용
- 기본값 true이다.
- PUT 인덱스이름/_mapping { "properties": { "필드이름": { "doc_values": false }}}를 통해 캐시를 끌 수 있음
- 디스크 기반이며 파일 시스템 캐시를 사용
- text, annotated_text 를 제외한 거의 모든 타입에서 사용
'공부하기 > 엘라스틱서치' 카테고리의 다른 글
엘라스틱서치 템플릿 (0) 2024.02.13 엘라스틱서치 애널라이저, 토크나이저, 노멀라이저 (0) 2024.02.13 엘라스틱 서치와 루씬 요약 (2) 2024.02.12 elasticsearch 8.4.2 이론 및 실습 (0) 2024.02.12 mac m1 키바나 8.4.2 설치 (0) 2024.02.12 - 애널라이저가 적용된 후 색인된다.