我正在学习elasticsearch。我已经在’mapping.json’中指定了映射。其内容是
{ "book" : { "_index" : { "enabled" : true }, "_id" : { "index": "not_analyzed", "store" : "yes" }, "properties" : { "author" : { "type" : "string" }, "characters" : { "type" : "string" }, "copies" : { "type" : "long", "ignore_malformed" : false }, "otitle" : { "type" : "string" }, "tags" : { "type" : "string" }, "title" : { "type" : "string" }, "year" : { "type" : "long", "ignore_malformed" : false, "index" : "analyzed" }, "available" : { "type" : "boolean", "index" : "analyzed" } } } }
当前的映射是
$ curl -XGET http://localhost:9200/_mapping?pretty => { "development_users" : { "user" : { "properties" : { "email" : { "type" : "string" }, "first_name" : { "type" : "string" }, "id" : { "type" : "string", "index" : "not_analyzed", "omit_norms" : true, "index_options" : "docs", "include_in_all" : false }, "last_name" : { "type" : "string" }, "role" : { "type" : "string" } } } } }
我使用以下命令为书籍创建映射
$ curl http://localhost:9200/books -X POST -d @mapping.json => {"ok":true,"acknowledged":true}
但是当列出所有映射时,我得到:
$ curl -XGET http://localhost:9200/_mapping?pretty => { "books" : { }, "development_users" : { "user" : { "properties" : { "email" : { "type" : "string" }, "first_name" : { "type" : "string" }, "id" : { "type" : "string", "index" : "not_analyzed", "omit_norms" : true, "index_options" : "docs", "include_in_all" : false }, "last_name" : { "type" : "string" }, "role" : { "type" : "string" } } } } }
为什么不按Mapping.json文件中指定的方式创建书籍的映射?
请尝试一下
curl -XPUT 'http://localhost:9200/<indexname>/book/_mapping' -d @mapping.json