Written by
최태열
on
on
Elastic Search 형태소 분석
_analyze API
text로 들어온 문장을 정해진 설정에 맞게 형태소 분석을 해준다.
# 띄워쓰기 기준으로 token화
GET _analyze
{
"text": "The Articles and Tutorials section features in-depth documents designed to give practical help to developers working with AWS",
"tokenizer": "whitespace"
}
# lowercase : 대문자 -> 소문자
# stop : the, and 등의 불용어 삭제
# snowball : s, es 삭제
GET _analyze
{
"text": "The Articles and Tutorials section features in-depth documents designed to give practical help to developers working with AWS",
"tokenizer": "whitespace",
"filter": [
"lowercase",
"stop",
"snowball"
]
}
특정 Field에 analyzer 적용
해당 컬럼에 데이터를 저장할 때, 자동으로 형태소 분석을 해준다.
PUT my_index
{
"mappings": {
"properties": {
"message" : {
"type": "text",
"analyzer": "snowball"
}
}
}
}
사용자 정의 analyzer 개발
# my_a 라는 analyzer 개발
PUT my_index
{
"settings": {
"index" : {
"analysis" : {
"analyzer":{
"my_a": {
"type": "custom",
"tokenizer": "whitespace",
"filter": [
"lowercase",
"stop",
"snowball"
]
}
}
}
}
},
"mappings": {
"properties": {
"message":{
"type": "text",
"analyzer": "my_a"
}
}
}
}
# my_a를 활용해 형태소 분석
GET my_index/_analyze
{
"analyzer": "my_a",
"text": [
"The Articles and Tutorials section features in-depth documents designed to give practical help to developers working with AWS"
]
}
Discussion and feedback