# Request
GET _analyze
{
# "analyzer": "english", <- 분석기 명시 가능. 생략하면 default
"text": "Tuning Go Apps in a Beat 123"
}
# Response
{
"tokens":
[
{
"token": "tuning",
"start_offset": 0,
"end_offset": 6,
"type": "<ALPHANUM>",
"position": 0
},
{...},
...
{
"token": "123", # NUM 타입인데 왜 문자열처럼 ""으로 감싸져 나올까
"start_offset": 25,
"end_offset": 28,
"type": "<NUM>",
"position": 6
}
]
}
# analyzer 설정
PUT blogs_test
{
"settings": {
"analysis": { # 분석 관련된 내용을 정의하는 곳
"char_filter": { # 문자에 대한 필터를 작성하겠다고 선언
"my_filter": {
"type": "mapping",
"mappings": ["X-Pack => XPack"]
}
},
"analyzer": { # 사용할 분석기에 대한 설정
"my_content_analyzer": {
# 이 안에 순서를 바꿔봤는데, 결과가 달라지진 않았음
# 내부 순서가 적용되는 순서에 영향을 미치지는 않는 듯
"type": "custom", # 존재하는 규칙 사용하지 않겠다고 명시
"char_filter": ["my_filter"], # 문자열 필터에 위에서 정의한 필터 가져옴
"tokenizer": "standard", # 기본 방법으로 토큰 구별
"filter": ["lowercase"] # 이후 모두 소문자로 변경
}
}
}
}
}
# Request
POST blogs_test/_analyze #blogs_test
{
"text": "We love X-Pack",
"analyzer": "my_content_analyzer"
}
# Response
{
"tokens": [
{
"token": "we",
"start_offset": 0,
"end_offset": 2,
"type": "<ALPHANUM>",
"position": 0
},
{
"token": "love",
"start_offset": 3,
"end_offset": 7,
"type": "<ALPHANUM>",
"position": 1
},
{
"token": "xpack",
"start_offset": 8,
"end_offset": 14,
"type": "<ALPHANUM>",
"position": 2
}
]
}