首先我想设置ES的默认分析器,但失败了。然后根据其他问题和网站,我试图设置一个索引的默认分析器。但也有一些问题。
我配置了ik分析器,我可以设置一些字段的分析器,这是我的命令:
curl -XPUT localhost:9200/test
curl -XPUT localhost:9200/test/test/_mapping -d'{
"test":{
"properties":{
"name":{
"type":"string",
"analyzer":"ik"
}
}
}
}'
并收到消息:
{"acknowledged":true}
同样,它也符合我的意愿。
但是,如果我尝试设置索引的默认分析器:
curl -XPOST localhost:9200/test1?pretty -d '{ "index":{
"analysis" : {
"analyzer" : {
"default" : {
"type" : "ik"
}
}
}
}
}'
我会收到错误消息:
{
"error" : {
"root_cause" : [ {
"type" : "index_creation_exception",
"reason" : "failed to create index"
} ],
"type" : "illegal_argument_exception",
"reason" : "no default analyzer configured"
},
"status" : 400
}
太奇怪了,不是吗? 期待您对此问题的看法。谢谢! :)
答案 0 :(得分:8)
你几乎就在那里,你只是在你的路上错过了/_settings
。这样做是这样的。另请注意,您需要close the index first,然后在更新分析器后重新打开它。
// close index
curl -XPOST 'localhost:9200/test1/_close'
add this to the path
|
v
curl -XPUT localhost:9200/test1/_settings?pretty -d '{ "index":{
"analysis" : {
"analyzer" : {
"default" : {
"type" : "ik"
}
}
}
}
}'
// re-open index
curl -XPOST 'localhost:9200/test1/_open'