Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 상속
- dlfks
- Overloading
- overriding
- 오버로딩
- Elasticsearch
- 버전관리
- java
- elastic certified engineer
- git
- 형상관리
- 오버라이딩
Archives
- Today
- Total
엔지니어 블로그
[Opensearch/Elasticserach] Opensearch/Elasticserach 오타 교정 본문
Opensearch/Elasticserach 오타 교정
본 내용은 다나와 기술블로그의 '엘라스틱서치 오타교정 API 만들어보기' 글을 참조하고 있습니다.
1. 진행 환경
- Opensearch 2.7.0
Elasticsearch에서도 동일하게 진행 가능
2.환경 구성
1. ICU Plugin 설치
bin/opensearch-plugin install analysis-icu
2.Index 생성
mappings/settings
PUT auto_complete
{
"settings": {
"index": {
"analysis": {
"filter": {
"my_filter": {
"mode": "decompose",
"name": "nfc",
"type": "icu_normalizer"
}
},
"analyzer": {
"nfd_analyzer": {
"filter": [
"lowercase"
],
"char_filter": [
"nfd_normalizer"
],
"tokenizer": "standard"
}
},
"char_filter": {
"nfd_normalizer": {
"mode": "decompose",
"name": "nfc",
"type": "icu_normalizer"
}
}
}
}
},
"mappings": {
"properties": {
"title": {
"type": "text",
"fields": {
"raw": {
"type": "keyword"
},
"spell": {
"type": "text",
"analyzer": "nfd_analyzer"
}
}
}
}
}
}
분석에는 nfd 방식을 사용하고 있다. 관련 자료는 NFD 에서 확인할 수 있다.
3. 색인
- 앞서 생성한 인덱스에 명품 브랜드명 색인 (ex.구찌,버버리)
- 색인 시 모든 브랜드명에 포함된 공백 제거
3.자동완성 적용
- Suggesters API를 사용하여 자동완성 적용 및 확인
POST /auto_complete/_search
{
"suggest" : {
"my-suggestion" : {
"text" : "버버라",
"term" : {
"field" : "title.spell",
"string_distance" : "jaro_winkler"
}
}
}
}
- 결과
{
...
"suggest": {
"my-suggestion": [
{
"text": "버버라",
"offset": 0,
"length": 3,
"options": [
{
"text": "버버리",
"score": 0.9444444,
"freq": 1
}
]
}
]
}
}
4.결론
- 오타 교정은 잘 되는 편이다.
- 성능 테스트가 필요할 것이다.
- 오타가 사용자의 의도 된 오타인지 여부를 판단할 기준이 필요하다.
참고자료
'ELK > elasticsearch' 카테고리의 다른 글
[Opensearch/Elasticsearch] 운영중인 Cluster의 재구동 방법 - Rolling Restart (0) | 2023.09.22 |
---|---|
[Elasticseach] Path Hierarachy Tokenizer (0) | 2023.07.25 |
[Elasticsearch] Function Score Query (0) | 2023.04.04 |
[Elasticsearch] Mustache (0) | 2023.04.04 |
[Elasticsarch] Elasticsearch APM (0) | 2023.04.04 |