• eleastcsearch01操作mapping


    
    # ElasticSearch version "number": "7.14.1"
    
    # 获取健康值
    GET _cat/health?v
    
    # 获取所有的信息
    GET _cat/indices?v
    
    # 创建一条id为1记录 没有会自动创建索引,字段类型会自动推导
    PUT users/_doc/1
    {
      "id" : 1,
      "name" : "lisi",
      "height" : 184.5,
      "age" : 32,
      "state" : true,
      "created_at" : "2022-05-02 18:50:49",
      "updated_at" : "2022-05-02 18:50:49"
    }
    
    # 判断 uesrs索引是否存在
    HEAD /users 
    
    # 获取mapping信息
    GET users/_mapping?pretty
    
    # 删除索引
    DELETE users
    
    # mappings信息=======================================
    # 创建test3索引
    # mapping number_of_shards分片数 
    # number_of_replicas版本数
    
    # 创建test3索引
    PUT users
    {
        "settings":{
            "number_of_shards":1,
            "number_of_replicas":0
        },
        "mappings":{
            "properties":{
                "age":{
                    "type":"long"
                },
                "height":{
                    "type":"float"
                },
                "id":{
                    "type":"long"
                },
                "name":{
                    "type":"text",
                    "fields":{
                        "keyword":{
                            "type":"keyword",
                            "ignore_above":256
                        }
                    }
                },
                "state":{
                    "type":"boolean"
                },
                "created_at":{
                    "type":"date",
                    "format":"yyyy-MM-dd HH:mm:ss||yyyy-MM-dd ||HH:mm:ss ||epoch_millis"
                },
                "updated_at":{
                    "type":"date",
                    "format":"yyyy-MM-dd HH:mm:ss||yyyy-MM-dd ||HH:mm:ss ||epoch_millis"
                }
            }
        }
    }
    
    
    # 给users新增一个skuNumber字段,执行下面的命令即可修改mapping。
    PUT users/_mapping
    {
      "properties":{
          "skuNumber":{
              "type":"keyword"
          }
      }
    }
    
    # 新增记录
    put users/_doc/2
    {
      "skuNumber":"1234"
    }
    
    # 获取users id=1的信息
    GET users/_doc/1
    
    # 获取users所有信息
    GET users/_doc/_search
    
    GET users/_search
    
    
    # 新增pushTime字段后,历史数据是没有默认值的。
    # 场景一:因为es索引结构特性,当我们对现有索引新增字段时,历史数据并不会有默认值
    # 场景二:新增记录时,如果没有写入这个字段值时,也不会有默认值
    # 所以有时我们需要给历史数据设置认值,
    # 设置默认值时,如果历史数据的此字段已经有值,不会被修改,只会对无值的数据进行修改。
    # 设置默认值后,再写入数据新数据,如果此字段没有给值,依然会是null值
    # 以命令为指定type类型为_doc的记录 修改默认值为1332466578
    
    POST users/_doc/_update_by_query
    {
      "script": {
        "lang": "painless",
        "source": "if (ctx._source.pushTime== null) {ctx._source.pushTime= 1332466579}"
      }
    }
    
    # 获取test3中有多少条数据
    GET users/_count
    
    
    # 时间类型
    PUT /test2
    {
      "mappings": {
          "properties": {
            "date": {
              "type":   "date",
              "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd ||HH:mm:ss ||epoch_millis"
            }
          }
      }
    }
    
    POST _bulk
    {"index":{"_index":"test2","_type":"_doc","_id":1}}
    { "date": "2022-01-02" }
    {"index":{"_index":"test2","_type":"_doc","_id":2}}
    { "date": "12:00:00" }
    {"index":{"_index":"test2","_type":"_doc","_id":3}}
    { "date": "1420070400001" }
    {"index":{"_index":"test2","_type":"_doc","_id":4}}
    { "date": "2018-10-01 12:00:00" }
    
    # delete mapping
    DELETE /test2
    
    
    //查所有信息 查所有索引
    GET _search
    {
      "query": {
        "match_all": {}
      }
    }
    
    # 获取test2所有信息
    GET /test2/_doc/_search
    
    # 查所有信息 查索引kibana_sample_data_flights
    GET /kibana_sample_data_flights/_search
    {
      "query": {
        "match_all": {}
      }
    }
    
    # 查所有信息 查多个索引,用逗号隔开
    GET /users,kibana_sample_data_flights/_search
    {
      "query": {
        "match_all": {}
      }
    }
    
    
    # 复杂数据类型
    # es支持复杂的数据类型,包括:object、array、nested。用的不是很多,举个实例:
    PUT /test4
    {
        "settings":{
            "number_of_shards":1,
            "number_of_replicas":0
        },
        "mappings":{
            "properties":{
                "manager":{
                    "properties":{
                        "age":{
                            "type":"long"
                        },
                        "name":{
                            "properties":{
                                "first":{
                                    "type":"text",
                                    "fields":{
                                        "keyword":{
                                            "type":"keyword",
                                            "ignore_above":256
                                        }
                                    }
                                },
                                "last":{
                                    "type":"text",
                                    "fields":{
                                        "keyword":{
                                            "type":"keyword",
                                            "ignore_above":256
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "region":{
                    "type":"text",
                    "fields":{
                        "keyword":{
                            "type":"keyword",
                            "ignore_above":256
                        }
                    }
                }
            }
        }
    }
    
    PUT /test4/_doc/1
    { 
      "region": "US",
      "manager": { 
        "age":     30,
        "name": { 
          "first": "John",
          "last":  "Smith"
        }
      }
    }
    GET /test4/_mapping?pretty
    
    GET /test4/_doc/1
    
    DELETE /test4
    
    #存储方式:
    {
      "region":             "US",
      "manager.age":        30,
      "manager.name.first": "John",
      "manager.name.last":  "Smith"
    }
    

    更新数据类型参考:

    https://www.cnblogs.com/shoufeng/p/10692113.html

    https://blog.csdn.net/liuxiao723846/article/details/109099508

    GET _analyze
    {
    "analyzer": "ik_max_word",
    "text": "我是中国人"
    }

    GET _analyze
    {
    "analyzer": "ik_smart",
    "text": ["我是中国人"]
    }

    
    
    更新数据类型参考:
    
    
    https://www.cnblogs.com/shoufeng/p/10692113.html
    
    https://blog.csdn.net/liuxiao723846/article/details/109099508
  • 相关阅读:
    一个Mini的ASP.NET Core框架的实现
    DDD领域驱动设计理论篇
    你准备好了在云中工作吗?
    FFM原理及公式推导
    IOS学习:常用第三方库(GDataXMLNode:xml解析库)
    网络数据的XML解析
    iOS开发之html解析
    iOS解析HTML
    iOS设计模式——MVC(Model-View-Controller)
    iOS设计模式——Category
  • 原文地址:https://www.cnblogs.com/haima/p/16201395.html
Copyright © 2020-2023  润新知