Elasticsearch 模板字段映射不起作用
Elasticsearch template field mapping not working
我为特定索引定义了以下模板:
curl -XPUT http://localhost:9200/_template/template_1 -d '{
"template": "new_dashboard_1",
"mappings": {
"_default_" : {
"_all" : {"enabled" : true},
"dynamic_templates" : [ {
"string_fields" : {
"match" : "*",
"match_mapping_type" : "string",
"mapping" : {
"type" : "string", "index" : "analyzed", "omit_norms" : true,
"fields" : {
"raw" : {"type": "string", "index" : "not_analyzed"}
}
}
}
}
} ]
}
}'
我的目的是为任何字符串值创建一个 .raw 类型并将索引设置为 "not_analyzed"..
但是当我创建一些测试数据并验证时,.raw 字段并没有首先被创建。
curl -XPOST http://localhost:9200/new_dashboard_1/type/ -d '{
"sensors": {
"_reading": "26 Celsius",
"_state": "Normal",
"augmentation": {},
"_slot": "7",
"_name": "Temp: INLET"
},
"ipAddress": "10.0.0.2"
}'
curl -XGET http://localhost:9200/new_dashboard_1/type/_search?q=*:*
{
"took": 35,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 1,
"hits": [
{
"_index": "new_dashboard_1",
"_type": "type",
"_id": "AVE-IUsW_nEkXpEfOb2D",
"_score": 1,
"_source": {
"sensors": {
"_reading": "26 Celsius",
"_state": "Normal",
"augmentation": {},
"_slot": "7",
"_name": "Temp: INLET"
},
"ipAddress": "10.0.0.2"
}
}
]
}
}
我需要更改什么吗?
raw
字段已创建,但它不是 "visible",因为它没有添加到您已发送用于索引的 _source
。但是,如果您 运行(例如)对任何 raw
子字段进行聚合,您将得到一些结果:
{
"size": 0,
"aggs": {
"ips": {
"terms": {
"field": "ipAddress.raw"
}
}
}
}
此外,如果您在为文档编制索引后获得映射,您还会在其中看到 raw
字段:
curl -XGET localhost:9200/new_dashboard_1/_mapping/type
我为特定索引定义了以下模板:
curl -XPUT http://localhost:9200/_template/template_1 -d '{
"template": "new_dashboard_1",
"mappings": {
"_default_" : {
"_all" : {"enabled" : true},
"dynamic_templates" : [ {
"string_fields" : {
"match" : "*",
"match_mapping_type" : "string",
"mapping" : {
"type" : "string", "index" : "analyzed", "omit_norms" : true,
"fields" : {
"raw" : {"type": "string", "index" : "not_analyzed"}
}
}
}
}
} ]
}
}'
我的目的是为任何字符串值创建一个 .raw 类型并将索引设置为 "not_analyzed"..
但是当我创建一些测试数据并验证时,.raw 字段并没有首先被创建。
curl -XPOST http://localhost:9200/new_dashboard_1/type/ -d '{
"sensors": {
"_reading": "26 Celsius",
"_state": "Normal",
"augmentation": {},
"_slot": "7",
"_name": "Temp: INLET"
},
"ipAddress": "10.0.0.2"
}'
curl -XGET http://localhost:9200/new_dashboard_1/type/_search?q=*:*
{
"took": 35,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 1,
"hits": [
{
"_index": "new_dashboard_1",
"_type": "type",
"_id": "AVE-IUsW_nEkXpEfOb2D",
"_score": 1,
"_source": {
"sensors": {
"_reading": "26 Celsius",
"_state": "Normal",
"augmentation": {},
"_slot": "7",
"_name": "Temp: INLET"
},
"ipAddress": "10.0.0.2"
}
}
]
}
}
我需要更改什么吗?
raw
字段已创建,但它不是 "visible",因为它没有添加到您已发送用于索引的 _source
。但是,如果您 运行(例如)对任何 raw
子字段进行聚合,您将得到一些结果:
{
"size": 0,
"aggs": {
"ips": {
"terms": {
"field": "ipAddress.raw"
}
}
}
}
此外,如果您在为文档编制索引后获得映射,您还会在其中看到 raw
字段:
curl -XGET localhost:9200/new_dashboard_1/_mapping/type