欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

elasticsearch创建索引 ,mapping,dynamic_templates

程序员文章站 2022-07-09 15:37:49
...

简述

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"
                        
                    }
          }
    }
  }
}'

总结

上面的模板中配置了 amountdouble 类型。分词器:ik_max_word,查询不分词的属性:raw