简述
elasticsearch 创建索引时通常需要配置mapping。mapping的含义类似于关系数据库中的表结构。但mapping更加灵活。
创建
以下实例是创建索引:my-index-000001,并加入dynamic_templates。
地址
http://localhost:9400/my-index-000001
方式
put
端口
http 端口
模板内容
{
"mappings": {
"_default_": {
"dynamic_templates": [
{
"string_fields": {
"match": "*",
"match_mapping_type": "string",
"mapping": {
"analyzer": "ik_max_word",
"fields": {
"raw": {
"ignore_above": 2000,
"type": "keyword"
}
},
"index": "true",
"omit_norms": true,
"type": "text"
}
}
}
],
"properties": {
"amount": {
"type": "double"
}
}
}
}
}
curl 方式
curl --location --request PUT 'http://localhost:9400/my-index-000001' \
--header 'Content-Type: application/json' \
--data-raw '{
"mappings": {
"_default_": {
"dynamic_templates": [
{
"string_fields": {
"match": "*",
"match_mapping_type": "string",
"mapping": {
"analyzer": "ik_max_word",
"fields": {
"raw": {
"ignore_above": 2000,
"type": "keyword"
}
},
"index": "true",
"omit_norms": true,
"type": "text"
}
}
}
],
"properties": {
"contract_amount": {
"type": "double"
}
}
}
}
}'
总结
上面的模板中配置了 amount
为double
类型。分词器:ik_max_word,查询不分词的属性:raw