Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

set default analyzer of index

First I wanted to set default analyzer of ES, and failed. And then according to other questions and websites, I'm trying to set default analyzer of one index.But there are some problems too.

I have configured ik analyzer, and I can set some fields' analyzer, here is my command:

curl -XPUT localhost:9200/test

curl -XPUT localhost:9200/test/test/_mapping -d'{
 "test":{
   "properties":{
     "name":{
       "type":"string",
       "analyzer":"ik"
     }
   }
 }
}'

and get the message:

{"acknowledged":true}

also, it works as my wish.

but, if I try to set default analyzer of index:

curl -XPOST localhost:9200/test1?pretty -d '{                                                                           "index":{
"analysis" : {
            "analyzer" : {
                "default" : {
                    "type" : "ik"
                }
            }
        }
    }
}'

I will get error message:

{
  "error" : {
    "root_cause" : [ {
      "type" : "index_creation_exception",
      "reason" : "failed to create index"
    } ],
    "type" : "illegal_argument_exception",
    "reason" : "no default analyzer configured"
  },
  "status" : 400
}

So strange,isn't it? Looking forward to your opinions about this problem. Thanks! :)

like image 763
iurti Avatar asked Jan 20 '16 08:01

iurti


1 Answers

You're almost there, you're simply missing /_settings in your path. Do it like this instead. Also note that you need to close the index first and then reopen it after updating analyzers.

// 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'
like image 163
Val Avatar answered Oct 21 '22 21:10

Val