Elasticsearch:index

索引

创建索引库

ES中通过Restful请求操作索引库、文档。请求内容用DSL语句来表示。
创建索引库和mapping的DSL语法如下:

PUT /索引库名称
{
  "mappings":{
    "properties":{
      "字段名1":{
        "type":"text",
        "analyzer":"ik_smart"
      },
      "字段名2":{
        "type":"keyword",
        "index":"false"
      },
      "字段名3":{
        "properties":{
           "子字段":{
             "type":"keyword"
           }
        }
      },
      // ...略
    }
  }
}

实例

PUT /es_test
{
  "mappings": {
    "properties": {
      "info": {
        "type": "text",
        "analyzer": "ik_smart"
      },
      "email": {
        "type": "keyword",
        "index": "false"
      },
      "name": {
        "type": "object",
        "properties": {
          "firstName": {
            "type": "keyword"
          },
          "lastName": {
            "type": "keyword"
          }
        }
      }
    }
  }
}

执行结果

{
  "acknowledged" : true,
  "shards_acknowledged" : true,
  "index" : "es_test"
}

查询索引库

语法:
GET /索引库名
实例
GET /es_test
执行结果

{
  "es_test" : {
    "aliases" : { },
    "mappings" : {
      "properties" : {
        "email" : {
          "type" : "keyword",
          "index" : false
        },
        "info" : {
          "type" : "text",
          "analyzer" : "ik_smart"
        },
        "name" : {
          "properties" : {
            "firstName" : {
              "type" : "keyword"
            },
            "lastName" : {
              "type" : "keyword"
            }
          }
        }
      }
    },
    "settings" : {
      "index" : {
        "creation_date" : "1687487996291",
        "number_of_shards" : "1",
        "number_of_replicas" : "1",
        "uuid" : "cQ_LgHSOQn-1KdWTR0YL0A",
        "version" : {
          "created" : "7060199"
        },
        "provided_name" : "es_test"
      }
    }
  }
}

删除索引库

语法:
DELETE /索引库名
实例:
DELETE /es_test1
执行结果

{
  "acknowledged" : true
}

修改索引库

es中索引库不允许修改,修改会导致倒排索引失效
但允许向索引库中添加新的字段,语法如下:

PUT /索引库名/_mapping
{
  "properties":{
    "新字段名":{
      "type":"integer"
    }
  }
}

字段名必须是全新的,否则以为是修改原有的,会报错
实例

PUT /es_test/_mapping
{
  "properties": {
    "age":{
      "type":"integer"
    }
  }
}

执行结果

{
  "acknowledged" : true
}

再次修改type为long类型

PUT /es_test/_mapping
{
  "properties": {
    "age":{
      "type":"long"
    }
  }
}

报错

{
  "error" : {
    "root_cause" : [
      {
        "type" : "illegal_argument_exception",
        "reason" : "mapper [age] cannot be changed from type [integer] to [long]"
      }
    ],
    "type" : "illegal_argument_exception",
    "reason" : "mapper [age] cannot be changed from type [integer] to [long]"
  },
  "status" : 400
}

Reference
黑马程序员

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

metabit

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值