我正在尝试使用json文件来定义每个索引的默认映射。这就是我想要做的事情:
/usr/share/elasticsearch/config/default-mapping.json
{
"item": {
"properties": {
"uuid": {"type": "string", "store": "yes", "index": "no"},
"title": {"type": "string", "store": "yes", "boost": 5,
"index": "analyzed", "analyzer": "english"},
"description": {"type": "string", "store": "yes", "boost": 3,
"index": "analyzed", "analyzer": "english"},
}
当我尝试查询index_test elasticsearch索引时,我得到了这个:
curl -XGET 'http://...:9200/index_test/_mapping'
{"index_test":{"mappings":{}}}
我使用了这里的文档。
https://www.found.no/foundation/elasticsearch-mapping-introduction/
答案 0 :(得分:2)
您可以使用索引的默认配置(索引设置,映射等)创建index template。
为此,请将default-mapping.json文件的内容更改为某些内容 像:
{
"template_1" : {
"template" : "*",
"mappings" : {
"type" : {
"properties" : {
"uuid" : {
"type" : "string",
"store" : "yes",
"index" : "no"
},
"title" : {
"type" : "string",
"store" : "yes",
"boost" : 5,
"index" : "analyzed",
"analyzer" : "english"
},
"description" : {
"type" : "string",
"store" : "yes",
"boost" : 3,
"index" : "analyzed",
"analyzer" : "english"
}
}
}
}
}
}
创建新索引
POST /newindex
新创建的索引的映射:
{
"newindex" : {
"mappings" : {
"type" : {
"properties" : {
"description" : {
"type" : "string",
"boost" : 3,
"store" : true,
"analyzer" : "english"
},
"title" : {
"type" : "string",
"boost" : 5,
"store" : true,
"analyzer" : "english"
},
"uuid" : {
"type" : "string",
"index" : "no",
"store" : true
}
}
}
}
}
}
希望这会对你有所帮助。
答案 1 :(得分:2)
假设您已经创建了索引index_test
,则需要执行以下操作(如链接中所示):
$ curl -XPUT 'http://localhost:9200/index_test/my_type/_mapping' -d '
{
"my_type": {
"properties": {
"uuid": {
"type": "string",
"store": "yes",
"index": "no"
},
"title": {
"type": "string",
"store": "yes",
"boost": 5,
"index": "analyzed",
"analyzer": "english"
},
"description": {
"type": "string",
"store": "yes",
"boost": 3,
"index": "analyzed",
"analyzer": "english"
}
}
}
}
'
重要的一点是要注意有效负载中的字段对应于类型名称(通常我使用了my_type)。
使用GET
上的url:9200/index_test/_mapping/my_type?pretty
进行验证。
问候 FRICKE
答案 2 :(得分:0)
您的JSON文档无效。它应该是:
{
"my_type": {
"properties": {
"uuid": {
"type": "string",
"store": "yes",
"index": "no"
},
"title": {
"type": "string",
"store": "yes",
"boost": 5,
"index": "analyzed",
"analyzer": "english"
},
"description": {
"type": "string",
"store": "yes",
"boost": 3,
"index": "analyzed",
"analyzer": "english"
}
}
}
}
我建议您在修改映射时始终检查JSON文档。 当您将无效的JSON文档作为映射
发送时,ElasticSearch将忽略您的映射并且不会提示您出现任何错误JSON验证器网站:http://jsonlint.com/