03-ES索引库操作
索引库操作
索引库就类似数据库表,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索引库操作相关推荐
- 谷粒商城笔记+踩坑(9)——上架商品spu到ES索引库
导航: 谷粒商城笔记+踩坑汇总篇 目录 1.ES回顾 2.ES整合商品上架 2.1.分析 2.2.创建sku的es索引库 2.2.1.两种索引库设计方案分析 2.2.2.最终选用的索引库方案,nest ...
- kibana创建es索引_java操作es动态创建索引(按月生成),索引类型,索引别名
第一步:判断索引是否存在: //判断索引是否已经存在String indexName = Constans.ES_INDEX_TIME+"_"+DateUtils.getDateS ...
- ES的索引库(数据表)基础操作 —— 增删改查API版
索引库操作 索引库就类似数据库表,mapping映射就类似表的结构,对索引库的操作就类似于对数据库表的操作(为便于理解,以下描述有一些是用数据库表来描述的). 我们要向es中存储数据,必须先创建&qu ...
- 操作索引库-mapping属性
索引库操作 索引库就类似数据库表,mapping映射就类似表的结构. 我们要向es中存储数据,必须先创建"库"和"表". mapping映射属性 mapping ...
- 微服务03 分布式搜索引擎 elasticsearch ELK kibana RestAPI 索引库 DSL查询 RestClient 黑马旅游
分布式搜索引擎01 -- elasticsearch基础 0.学习目标 1.初识elasticsearch 1.1.了解ES 1.1.1.elasticsearch的作用 elasticsearch是 ...
- 05-ES的RestClient(操作索引库)
RestClient(操作索引库) ES官方提供了各种不同语言的客户端,用来操作ES.这些客户端的本质就是组装DSL语句,通过http请求发送给ES.官方文档地址:https://www.elasti ...
- 分布式搜索引擎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 ...
- Elasticsearch——分布式搜索引擎01(索引库、文档、RestAPI、RestClient、拼音分词器、IK分词器)
Elasticsearch--分布式搜索引擎01(索引库.文档.RestAPI.RestClient.拼音分词器.IK分词器) 一.初识 elesticsearch 1.1 简介 1.2 倒排索引(重 ...
- lucene_indexWriter说明、索引库优化
IndexWriter Hibernate的SessionFactory 在Hibernate中.一般保持一个数据库就仅仅有一个SessionFactory.由于在SessionFactory中维护二 ...
最新文章
- DL练习1:基于boston_house_prices的BP神经网络
- 读取数据库信息构建视图字段的备注信息,方便程序代码生成
- c++标准程序库异常
- SAP IBASE hierarchy remove - debug in ERP step1
- 国家电网是“围城”?辞职吗?
- java运行构建期间出错_构建和运行Java 8支持
- Java作业-多线程
- 想要轻松入门数据分析,这些知识不得不看!
- Flocker 做为后端存储代理 docker volume-driver 支持
- Android 数据库加密
- jlink6.80a烧写序列号(serial number)问题记录
- cs224n课后作业
- WSL2 网络异常排查 [ping 不通、网络地址异常、缺少默认路由、被宿主机防火墙拦截]
- 《二十世纪西方思想文化潮流》笔记--导论5--理性的后果1
- git 出现 Author identity unknown 问题一
- android第三方库适配鸿蒙,鸿蒙第三方适配rom
- JPA实现领域驱动设计(DDD) 中值对象的持久化
- matlab半周期正弦拟合,Matlab:帮助理解正弦曲线拟合
- 文字翻译软件哪个好用?亲测好用的软件分享
- 小米10pro卡刷教程 卡刷升级官方系统方法