Elasticsearch
[Elasticsearch] 엘라스틱 서치 형태소 분석기
다콩잉
2023. 4. 6. 16:28
인덱스 생성 이전 게시글 참고
[Elasticsearch] 엘라스틱 서치 인덱스 생성
인덱스를 생성하는 기본 쿼리 PUT / { "settings": { "number_of_shards": , "number_of_replicas": , ... }, "mappings": { } } Settings와 Mappings 모든 인덱스는 두 개의 정보 단위를 가지고 있는데 바로 settings와 mappings이다.
manybean.tistory.com
형태소 분석기를 이용하여 Elasticsearch에서 검색을 수행할 때, 입력된 검색어가 분석기에 의해 형태소로 분리되고, 이를 이용하여 색인된 문서를 검색하게 됩니다. 이를 통해 검색어의 형태와 일치하는 문서를 더욱 정확하게 찾아낼 수 있습니다.
형태소 분석기 설치
- Elasticsearch 7.x 버전과 8.x 버전에서 Elasticsearch Plugin을 설치하는 방법과 형태소 분석기를 설정하는 방법은 동일합니다.
- 그러나 Elasticsearch 7.x 버전과 8.x 버전에서 분석기에 사용할 수 있는 형태소 분석기 종류가 다를 수 있습니다.
필수 요구사항
- Java 8 이상
- Elasticsearch 6.0 이상
- Elasticsearch Plugin 설치 권한
설치 방법
- Elasticsearch Plugin 설치
$ cd /path/to/elasticsearch
$ bin/elasticsearch-plugin install analysis-nori
## 직접 만든 플러그인
$ bin/elasticsearch-plugin install file://{절대 경로}
2. Elasticsearch 재시작
$ bin/elasticsearch
사용 방법
- Index 생성 시 분석기 설정
PUT /my_index
{
"settings": {
"analysis": {
"analyzer": {
"my_analyzer": {
"type": "custom",
"tokenizer": "nori_tokenizer"
}
}
}
}
}
2. 검색 시 분석기 설정
GET /my_index/_search
{
"query": {
"match": {
"content": {
"query": "검색어",
"analyzer": "my_analyzer"
}
}
}
}
참고 자료
형태소 분석기 적용 방식
- 필드의 데이터를 토큰화하여 검색 가능한 형태로 변환하는 분석기를 설정할 수 있습니다.
- 데이터의 검색 정확도와 성능에 영향을 미치는 분석기를 적절하게 선택해야 합니다.
- Elasticsearch는 기본 분석기로 standard, simple, whitespace 등을 제공하며, 사용자 정의 분석기를 만들 수도 있습니다.
- 형태소 분석기는 텍스트를 처리하여 검색 가능한 형태로 만드는 데 사용됩니다. 특정 언어의 형태소 분석을 위해 해당 언어에 특화된 형태소 분석기를 사용할 수 있습니다.
- 예를 들어, 한국어 형태소 분석을 위해 Nori 형태소 분석기를 사용할 수 있습니다.
- 형태소 분석기를 적용하려면 settings의 analysis 섹션에 형태소 분석기를 추가하고, mappings에서 해당 분석기를 사용하도록 설정해야 합니다.
1. Settings에 형태소 분석기 추가
// 한국어 형태소 분석기 Nori를 사용하는 경우
"settings": {
"analysis": {
"analyzer": {
"korean": {
"type": "custom",
"tokenizer": "nori_tokenizer"
}
},
"tokenizer": {
"nori_tokenizer": {
"type": "nori_tokenizer"
}
}
}
}
2. Mappings에서 형태소 분석기 사용
// "content"라는 필드를 "text"타입으로 지정하고
// "analyzer"를 "korean"으로 지정하여 Nori 형태소 분석기를 사용하도록 설정
"mappings": {
"properties": {
"content": {
"type": "text",
"analyzer": "korean"
}
}
}
엘라스틱 서치 가이드북
Elastic 가이드 북 - Elastic 가이드북
7. 인덱스 설정과 매핑 - Settings & Mappings
esbook.kimjmin.net
728x90