티스토리 뷰
반응형
단어는 다르지만, 뜻이 같은 경우 같이 검색되도록 하고 싶을 때가 있다. 예를 들어 하늘을 검색한다고 했을 때 Sky와 하늘이 같이 검색되도록 하고 싶을 때가 있는데 이때 동의어 사전을 등록하면 같이 검색되도록 할 수 있다.
동의어 사전을 등록하고 활용하기 위해서 Synonym Token Filter를 활용하면 된다.
이제 Synonym Token Filter를 활용해보자.
아래와 같이 동의어 필터를 추가한다.
"filter" : {
"synonym" : {
"type" : "synonym",
"synonyms_path" : "analysis/synonym.txt"
}
}
synonyms_path에 들어가 있는 경로에 동의어 사전 파일이 존재해야 하며 해당 경로는 elasticsearch/config 하위에 존재해야 한다.
그리고 아래와 같이 분석기의 필터에 추가하고
"analyzer" : {
"synonym" : {
"tokenizer" : "whitespace",
"filter" : ["synonym"]
}
}
아래와 같이 필요한 필드에 분석기를 추가해주면 된다.
"mappings": {
"properties": {
"keyword": {
"type": "text",
"analyzer": "synonym"
}
}
}
만약 이미 색인 된 인덱스에 동의어 사전을 변경하게 되면 재색인을 해야 한다.
참고 : https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-synonym-tokenfilter.html
반응형
'Elasticsearch' 카테고리의 다른 글
[Elasticsearch] 실시간 동의어 적용 (0) | 2020.03.17 |
---|---|
[Elasticsearch] 동적 매핑(Dynamic Mapping) (0) | 2019.08.03 |
[Elasticsearch] Reindex API의 간단한 설명 (0) | 2019.07.29 |
[Elasticsearch] 기본적인 내용 기록 (0) | 2019.06.12 |
댓글