Table of Contents
Error deserializing co.elastic.clients.elasticsearch._types.analysis.Analyzer: Property ‘type’ not found
이상한 오류가 생겨서 내용을 적어놓는다.
json 값은 아래와 같다.
오류 위치는 settings.analyzer.ngram_analyzer 였다.
인덱스 생성은 직접하게되면 정상적으로 생성하게 된다.
{
"settings": {
"number_of_shards": 1,
"max_ngram_diff": 50,
"number_of_replicas": 0,
"analysis": {
"filter": {
"suggest_filter": {
"type": "ngram",
"min_gram": 1,
"max_gram": 50
}
},
"analyzer": {
"ngram_analyzer": {
"tokenizer": "ngram_tokenizer"
}
},
"tokenizer": {
"ngram_tokenizer": {
"type": "ngram",
"custom_token_chars": "+-_",
"min_gram": "1",
"max_gram": "10",
"token_chars": [
"letter",
"digit",
"custom"
]
}
}
}
}
}
그런데 co.elastic.clients:elasticsearch-java
에서 제공하는 API 를 이용해 생성하게 되면 오류가 발생한다.
원인은 아래와 같다.
원래는 디폴트값을 생략해도 정상적으로 실행이 되지만,
API 를 이용해 생성할 때는 디폴트값 또한 명시해 주어야 한다.
"analyzer": {
"ngram_analyzer": {
"type": "custom",
"tokenizer": "ngram_tokenizer"
}
},