当前位置: 首页 > article >正文

【elasticsearch】elasticsearch索引库操作

索引库操作

  • Mapping映射属性
  • 索引库的CRUD
    • 创建索引库和映射
    • 查询索引库
    • 创修改索引库
    • 删除索引库
    • 总结

Index就类似数据库表,Mapping映射就类似表的结构。我们要向es中存储数据,必须先创建Index和Mapping

Mapping映射属性

Mapping是对索引库中文档的约束,常见的Mapping属性包括:

  • type:字段数据类型,常见的简单类型有:
    • 字符串:text(可分词的文本)、keyword(精确值,例如:品牌、国家、ip地址)
    • 数值:long、integer、short、byte、double、float、
    • 布尔:boolean
    • 日期:date
    • 对象:object
  • index:是否创建索引,默认为true
  • analyzer:使用哪种分词器
  • properties:该字段的子字段

示例:

{
    "age": 21,
    "weight": 52.1,
    "isMarried": false,
    "info": "elasticsearch索引库操作",
    "email": "zy@itcast.cn",
    "score": [99.1, 99.5, 98.9],
    "name": {
        "firstName": "云",
        "lastName": "赵"
    }
}

对应的每个字段映射(Mapping):
在这里插入图片描述

索引库的CRUD

由于Elasticsearch采用的是Restful风格的API,因此其请求方式和路径相对都比较规范,而且请求参数也都采用JSON风格。
基于Kibana的DevTools来编写请求,由于有语法提示,会非常方便。

创建索引库和映射

基本语法:

  • 请求方式:PUT
  • 请求路径:/索引库名,可以自定义
  • 请求参数:mapping映射

格式:

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

示例:

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

查询索引库

基本语法:

  • 请求方式:GET
  • 请求路径:/索引库名
  • 请求参数:无

格式:

GET /索引库名

示例:

GET /test

创修改索引库

倒排索引结构虽然不复杂,但是一旦数据结构改变(比如改变了分词器),就需要重新创建倒排索引,这简直是灾难。因此索引库一旦创建,无法修改mapping。

虽然无法修改mapping中已有的字段,但是却允许添加新的字段到mapping中,因为不会对倒排索引产生影响。因此修改索引库能做的就是向索引库中添加新字段,或者更新索引库的基础属性。

语法说明:

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

示例:

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

删除索引库

语法:

  • 请求方式:DELETE
  • 请求路径:/索引库名
  • 请求参数:无

格式:

DELETE /索引库名

示例:

DELETE /heima

总结

索引库操作有哪些?

  • 创建索引库:PUT /索引库名
  • 查询索引库:GET /索引库名
  • 删除索引库:DELETE /索引库名
  • 修改索引库,添加字段:PUT /索引库名/_mapping

可以看到,对索引库的操作基本遵循的Restful的风格,因此API接口非常统一,方便记忆。


http://www.kler.cn/a/514293.html

相关文章:

  • XCode-Color-Fixer 常见问题解决方案
  • Hadoop•搭建完全分布式集群
  • 基于STM32的智能门锁安防系统(开源)
  • 基于tldextract提取URL里的子域名、主域名、顶级域
  • ESP32下FreeRTOS实时操作系统使用
  • 麒麟系统中删除权限不够的文件方法
  • Spring 中的事件驱动模型
  • 一文读懂 RocketMQ:从概念到架构与应用原理概述
  • 图谱之前端关系应用
  • style标签没有写lang=“scss“引发的 bug 和反思
  • 基于lstm算法在MATLAB对短期风速进行预测
  • OSPF协议部分解读
  • 数字图像处理:实验三
  • Unity自学之旅03
  • Kafka 和 MQ 的区别
  • 在 AWS 上规划灾难恢复的分步指南
  • pgsql中处理数组类型字段
  • 【C++】运算符
  • PyTorch使用教程(5)-优化器
  • Android 绘图基础:Canvas,Paint,RectF,Paint类
  • 25/1/21 算法笔记<ROS2> 话题通信接口
  • LabVIEW太赫兹二维扫描成像系统
  • 【Nacos】Nacos快速上手
  • Models如何使用Gorm与数据库进行交互?
  • 利用Kubespray安装生产环境的k8s集群-准备篇
  • centos哪个版本建站好?centos最稳定好用的版本