- 일래스틱서치의 핵심이라 할 수 있는 검색 기능
- 분석기 구조
- 문자 필터 : 0개 이상
- 토크나이저(Tokenizer) : 정확히 1개
- 토큰 필터(Token filters) : 0개 이상
- 문자 필터
- 분석기를 0개 이상의 문자 필터로 구성할 수 있다. 문자 필터는 입력 필드의 문자열에서 동작한다.
- 토크나이저
- 분석기는 정확히 하나의 토크나이저를 갖고 있다. 토크나이저는 문자열을 받아 토큰 스트림을 생성하는 역할을 담당한다. 해당 토큰은 역색인을 만들 때 사용한다. 토큰은 단어와 같다고 봐도 무방하다.
- 표준 토크나이저 (standard) : 문자열을 공백 문자와 구두점을 기반으로 분해
- 토큰 필터 : 분석기에는 0개 이상의 토큰 필터가 존재할 수 있다.
- 소문자 토큰 필터(Lowercase Token Filter) : 입력 데이터의 모든 토큰을 소문자로 치환한다.
- 불용어 토큰 필터 (Stop Token Filter) : 문맥에서 의미 없는 단어를 제거한다. 예를 들어, 영어 문장에서는 is, a, an, the와 같이 관산, 전치사, 조사, 접속사 등이 불용어에 해당된다.
- 날짜 범위 : 날짜는 기본적으로 정렬되기 때문에 Range 쿼리를 날짜 필드에도 적용할 수 있다.
- Exists 쿼리 : 특정 필드에 널 값과 공백이 아닌 레코드만 가져오고 싶을 때 유용하게 사용
GET /amazon_products/products/_search
{
"query" : {
"exists" : {
"field" : "description"
}
}
}
}
- 특정 필드의 스코어 높이기
- 전자 상거래 웹 애플리케이션에서는 종종 사용자가 일부 항목을 검색하려고 할 때 특정 키워드를 찾을 수 있다. 제목 필드가 설명 필드가 더 중요할 경우가 있다. 제목 필드에 검색 용어가 여러 번 나온 값이 검색어와 더 관련성이 높은 결과 값일 것이다. 이처럼 특정 필드와 일치하는 항목을 발견하면 도큐먼트 스코어를 높일 방법이 있다. 제목 필드의 중요성을 설명 필드보다 3배로 만들어 보자.
GET /amazon_products/products/_search
{
"query" : {
"multi_match" : {
"query" : "monitor aquarium",
"fields" : ["title^3", "description"]
}
}
}
'Engineering WIKI > Book' 카테고리의 다른 글
기초부터 다지는 엘라스틱서치 운영 (7장) / 클러스터 성능 모니터링과 최적화 (54) | 2024.04.14 |
---|---|
기초부터 다지는 엘라스틱서치 운영 (6장) / ElasticSearch 클러스터 운영하기 (33) | 2024.04.06 |
기초부터 다지는 엘라스틱서치 운영 (5장) / ElasticSearch 클러스터 구축 (36) | 2024.03.28 |
기초부터 다지는 엘라스틱서치 운영 (3 ~ 4장) / 모니터링 및 기본개념 (112) | 2023.09.29 |
기초부터 다지는 엘라스틱서치 운영 (1 ~ 2장) / 훑어보기 및 기본동작 (58) | 2023.09.07 |
[일래스틱 스택 6 입문] 2장. 일래스틱서치 시작하기 (2) | 2023.08.22 |
[일래스틱 스택 6 입문] 1장. 일래스틱 소개 (1) | 2023.08.22 |
리팩토링 2판 - Chapter 11 (API 리팩터링) (0) | 2022.10.20 |