索引库操作

索引库就类似数据库表,mapping映射就类似表的结构。

我们要向es中存储数据,必须先创建“库”和“表”。

mapping映射属性

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

  • type:字段数据类型,常见的简单类型有:

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

例如下面的json文档:

{"age": 21,"weight": 52.1,"isMarried": false,"info": "谁把爷电动车骑走了?","email": "zy@itcast.cn","score": [99.1, 99.5, 98.9],"name": {"firstName": "四","lastName": "李"}
}

对应的每个字段映射(mapping):

  • age:类型为 integer;参与搜索,因此需要index为true;无需分词器
  • weight:类型为float;参与搜索,因此需要index为true;无需分词器
  • isMarried:类型为boolean;参与搜索,因此需要index为true;无需分词器
  • info:类型为字符串,需要分词,因此是text;参与搜索,因此需要index为true;分词器可以用ik_smart
  • email:类型为字符串,但是不需要分词,因此是keyword;不参与搜索,因此需要index为false;无需分词器
  • score:虽然是数组,但是我们只看元素的类型,类型为float;参与搜索,因此需要index为true;无需分词器
  • name:类型为object,需要定义多个子属性
    • name.firstName;类型为字符串,但是不需要分词,因此是keyword;参与搜索,因此需要index为true;无需分词器
    • name.lastName;类型为字符串,但是不需要分词,因此是keyword;参与搜索,因此需要index为true;无需分词器

索引库的CRUD

创建索引库和映射

基本语法

请求方式 请求路径 请求参数
PUT /索引库名,可以自定义 mapping映射
PUT /索引库名称
{"mappings": {"properties": {"字段名":{"type": "text","analyzer": "ik_smart"},"字段名2":{"type": "keyword","index": "false"},"字段名3":{"properties": {"子字段": {"type": "keyword"}}},// ...略}}
}

示例

#创建索引库
PUT /bttc
{"mappings": {"properties": {"info":{"type": "text","analyzer": "ik_smart"},"email":{"type": "keyword","index": false},"name":{"type": "object","properties": {"firstname":{"type":"keyword"},"lastname":{"type":"keyword"}}}}}
}

查询索引库

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

格式

GET /索引库名

示例

#查询索引库
GET /bttc

删除索引库

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

格式

DELETE /索引库名

示例

DELETE /bttc

修改索引库

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

虽然无法修改mapping中已有的字段,但是却允许添加新的字段到mapping中,因为不会对倒排索引产生影响。

格式

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

示例

#修改索引库,添加新字段
PUT /bttc/_mapping
{"properties":{"age":{"type":"integer"}}
}

03-ES索引库操作相关推荐

  1. 谷粒商城笔记+踩坑(9)——上架商品spu到ES索引库

    导航: 谷粒商城笔记+踩坑汇总篇 目录 1.ES回顾 2.ES整合商品上架 2.1.分析 2.2.创建sku的es索引库 2.2.1.两种索引库设计方案分析 2.2.2.最终选用的索引库方案,nest ...

  2. kibana创建es索引_java操作es动态创建索引(按月生成),索引类型,索引别名

    第一步:判断索引是否存在: //判断索引是否已经存在String indexName = Constans.ES_INDEX_TIME+"_"+DateUtils.getDateS ...

  3. ES的索引库(数据表)基础操作 —— 增删改查API版

    索引库操作 索引库就类似数据库表,mapping映射就类似表的结构,对索引库的操作就类似于对数据库表的操作(为便于理解,以下描述有一些是用数据库表来描述的). 我们要向es中存储数据,必须先创建&qu ...

  4. 操作索引库-mapping属性

    索引库操作 索引库就类似数据库表,mapping映射就类似表的结构. 我们要向es中存储数据,必须先创建"库"和"表". mapping映射属性 mapping ...

  5. 微服务03 分布式搜索引擎 elasticsearch ELK kibana RestAPI 索引库 DSL查询 RestClient 黑马旅游

    分布式搜索引擎01 -- elasticsearch基础 0.学习目标 1.初识elasticsearch 1.1.了解ES 1.1.1.elasticsearch的作用 elasticsearch是 ...

  6. 05-ES的RestClient(操作索引库)

    RestClient(操作索引库) ES官方提供了各种不同语言的客户端,用来操作ES.这些客户端的本质就是组装DSL语句,通过http请求发送给ES.官方文档地址:https://www.elasti ...

  7. 分布式搜索引擎01-elasticsearch-介绍、倒排索引原理、概念(文档和字段,索引和映射)、安装、索引库crud、文档crud、RestAPI(java代码实现es的crud)

    文章目录 分布式搜索引擎01 0.学习目标 1.初识elasticsearch 1.1.了解ES 1.1.1.elasticsearch的作用 1.1.2.ELK技术栈 1.1.3.elasticse ...

  8. Elasticsearch——分布式搜索引擎01(索引库、文档、RestAPI、RestClient、拼音分词器、IK分词器)

    Elasticsearch--分布式搜索引擎01(索引库.文档.RestAPI.RestClient.拼音分词器.IK分词器) 一.初识 elesticsearch 1.1 简介 1.2 倒排索引(重 ...

  9. lucene_indexWriter说明、索引库优化

    IndexWriter Hibernate的SessionFactory 在Hibernate中.一般保持一个数据库就仅仅有一个SessionFactory.由于在SessionFactory中维护二 ...

最新文章

  1. DL练习1:基于boston_house_prices的BP神经网络
  2. 读取数据库信息构建视图字段的备注信息,方便程序代码生成
  3. c++标准程序库异常
  4. SAP IBASE hierarchy remove - debug in ERP step1
  5. 国家电网是“围城”?辞职吗?
  6. java运行构建期间出错_构建和运行Java 8支持
  7. Java作业-多线程
  8. 想要轻松入门数据分析,这些知识不得不看!
  9. Flocker 做为后端存储代理 docker volume-driver 支持
  10. Android 数据库加密
  11. jlink6.80a烧写序列号(serial number)问题记录
  12. cs224n课后作业
  13. WSL2 网络异常排查 [ping 不通、网络地址异常、缺少默认路由、被宿主机防火墙拦截]
  14. 《二十世纪西方思想文化潮流》笔记--导论5--理性的后果1
  15. git 出现 Author identity unknown 问题一
  16. android第三方库适配鸿蒙,鸿蒙第三方适配rom
  17. JPA实现领域驱动设计(DDD) 中值对象的持久化
  18. matlab半周期正弦拟合,Matlab:帮助理解正弦曲线拟合
  19. 文字翻译软件哪个好用?亲测好用的软件分享
  20. 小米10pro卡刷教程 卡刷升级官方系统方法

热门文章

  1. UNITY游戏开发入门-Animator
  2. C++之《小货兵摆大炮》
  3. SQLServer 超时错误测试
  4. SSH服务器拒绝了密码。请再试一次。解决方法汇总。浪费我一下午的时间,只好承认自己好菜。
  5. matlab利用雷达检测器模块对驾驶场景中的车辆进行识别仿真
  6. 上网慢!经常掉线!怎么办?
  7. PAT 2018年天梯赛 赛后总结
  8. SSM框架入门知识点跟学雷神视频笔记
  9. 全球及中国圆形漆包线行业研究及十四五规划分析报告
  10. mysql Pt工具简单用法