BackEnd/Elasticsearch API
Analysis
hanseom
2025. 3. 11. 01:00
반응형
Elasticsearch Analysis는 텍스트 데이터를 처리하고, 색인할 수 있도록 변환하는 과정입니다. 이는 텍스트 데이터를 토큰화하고, 필터링하여 검색에 적합한 형태로 만드는 역할을 합니다.
Key components of Analyzers
- Character Filters: 텍스트를 토큰화하기 전에 문자 단위로 처리하는 역할을 합니다.
e.g HTML Stripping, Mapping and Pattern Replacement - Tokenizer: 텍스트를 개별 단어 또는 토큰으로 나누는 역할을 합니다.
e.g Standard Tokenizer, Whitespace Tokenizer, Keyword Tokenizer - Token Filters: 생성된 토큰을 추가로 처리하는 역할을 합니다.
e.g Lowercase Token Filter, Stop Token Filter, Stemmer Token Filter
standard analyzer
POST /_analyze
{
"text": "<p>Elasticsearch is a powerful tool for querying and analyzing data ...!!</p>",
"analyzer": "standard"
}
POST /_analyze
{
"text": "<p>Elasticsearch is a powerful tool for querying and analyzing data ...!!</p>",
"char_filter": ["html_strip"],
"tokenizer": "standard",
"filter": ["lowercase"]
}
Character Filter
- Mapping character filter
GET /_analyze
{
"tokenizer": "keyword",
"char_filter": [
{
"type": "mapping",
"mappings": [
"٠ => 0",
"١ => 1",
"٢ => 2",
"٣ => 3",
"٤ => 4",
"٥ => 5",
"٦ => 6",
"٧ => 7",
"٨ => 8",
"٩ => 9"
]
}
],
"text": "My license plate is ٢٥٠١٥"
}
- Customize and add to an analyzer
PUT /my-index-000001
{
"settings": {
"analysis": {
"analyzer": {
"my_analyzer": {
"tokenizer": "standard",
"char_filter": [
"my_mappings_char_filter"
]
}
},
"char_filter": {
"my_mappings_char_filter": {
"type": "mapping",
"mappings": [
":) => _happy_",
":( => _sad_"
]
}
}
}
}
}
GET /my-index-000001/_analyze
{
"tokenizer": "keyword",
"char_filter": [ "my_mappings_char_filter" ],
"text": "I'm delighted about it :("
}
[참고자료]
반응형