我为索引创建了一个自定义分析器,在实现它之后,当我尝试使用analyze
来查看它是否正常工作时,它会返回以下错误ElasticsearchIllegalArgumentException[failed to find analyzer [lyzer]]"
我将分析仪定义如下
post trial/settings
{
"index": {
"analysis": {
"tokenizer": {
"ngrm":{
"type": "nGram",
"min_gram": "4",
"max_gram": "8"
}
},
"filter": {
"myFilter": {
"type": "word_delimiter",
"generated_word_parts": "true",
"generated_number_parts": "true"
}
},
"analyzer": {
"lyzer": {
"type": "custom",
"tokenizer": "ngrm",
"filter": ["word_delimiter","myFilter"]
}
}
}
}
}
当我尝试验证分析仪是否正常工作时,我收到以下错误
GET /trial/_analyze?analyzer=lyzer&text=some_random_text_here
{
"error": "ElasticsearchIllegalArgumentException[failed to find analyzer [lyzer]]",
"status": 400
}
我甚至尝试放置映射并在那里声明分析器,但是徒劳无功!!
我还应该尝试哪种其他方法? ES迫切希望找不到我定义的分析仪!!
答案 0 :(得分:0)
尝试了一种不同的方法,并且它有效(排除设置进入体内)。这是怎么回事。
put trial
{
"settings" : {
"analysis" : {
"analyzer" : {
"lyzer" : {
"tokenizer" : "nizer"
}
},
"tokenizer" : {
"nizer" : {
"type" : "nGram",
"min_gram" : "4",
"max_gram" : "8",
}
}
}
}
}
感谢@Val建议put
。 (post
确实有效但每次都创建了索引。此外,在这种情况下,我已经有一个索引,这就是put
工作的原因。