【ElasticSearch】01 CRUD操作
1、资料:
ES官网最新版本下载地址:
https://www.elastic.co/cn/downloads/elasticsearch
历史版本下载:
https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-16-0
https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-8-0
2、参考教程:
# 尚硅谷 7.8.X
https://www.bilibili.com/video/BV1hh411D7sb # 狂神 7.6.x
https://www.bilibili.com/video/BV17a4y1x7zq # 尚学堂 7.4.2
https://www.bilibili.com/video/BV1x54y15775 # 黑马 7.4.0
https://www.bilibili.com/video/BV1Sy4y1G7LL
3、安装:
入门暂时不涉及Linux及集群部署问题,快速上手API
直接在官网上先下载windows平台的压缩包,解压即可
elasticsearch-7.16.3-windows-x86_64.zip
4、启动ElasticSearch:
E:\elasticsearch-7.16.3\bin\elasticsearch.bat
双击脚本文件启动ES
访问地址:
http://localhost:9200/
展示下面信息说明运行正常
{
"name" : "DESKTOP-VA4SKMT",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "KH3taZdhQ5KqYfMJQoyZDQ",
"version" : {
"number" : "7.16.3",
"build_flavor" : "default",
"build_type" : "zip",
"build_hash" : "4e6e4eab2297e949ec994e688dad46290d018022",
"build_date" : "2022-01-06T23:43:02.825887787Z",
"build_snapshot" : false,
"lucene_version" : "8.10.1",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
5、索引操作
一、CREATE INDEX 创建索引:
# PUT
http://localhost:9200/索引名称
# 案例
http://localhost:9200/student
索引创建成功:
{
"acknowledged": true,
"shards_acknowledged": true,
"index": "student"
}
索引创建失败,索引已经存在
{
"error": {
"root_cause": [
{
"type": "resource_already_exists_exception",
"reason": "index [student/FXObUphUQP65KZEJQk7TgQ] already exists",
"index_uuid": "FXObUphUQP65KZEJQk7TgQ",
"index": "student"
}
],
"type": "resource_already_exists_exception",
"reason": "index [student/FXObUphUQP65KZEJQk7TgQ] already exists",
"index_uuid": "FXObUphUQP65KZEJQk7TgQ",
"index": "student"
},
"status": 400
}
二、DELETE INDEX 删除索引
# DELETE
http://localhost:9200/索引名称
# 案例
http://localhost:9200/student
索引删除成功:
{
"acknowledged": true
}
索引删除失败,不存在该索引:
{
"error": {
"root_cause": [
{
"type": "index_not_found_exception",
"reason": "no such index [student]",
"resource.type": "index_or_alias",
"resource.id": "student",
"index_uuid": "_na_",
"index": "student"
}
],
"type": "index_not_found_exception",
"reason": "no such index [student]",
"resource.type": "index_or_alias",
"resource.id": "student",
"index_uuid": "_na_",
"index": "student"
},
"status": 404
}
三、GET INDEX INFO 查看指定索引信息
# GET
http://localhost:9200/索引名称
响应该索引的所有信息
{
"student": {
"aliases": {},
"mappings": {},
"settings": {
"index": {
"routing": {
"allocation": {
"include": {
"_tier_preference": "data_content"
}
}
},
"number_of_shards": "1",
"provided_name": "student",
"creation_date": "1643182895035",
"number_of_replicas": "1",
"uuid": "KmLC3oT9Te2lUmOQVf8iXw",
"version": {
"created": "7160399"
}
}
}
}
}
如果索引不存在则报错:
{
"error": {
"root_cause": [
{
"type": "index_not_found_exception",
"reason": "no such index [student3]",
"resource.type": "index_or_alias",
"resource.id": "student3",
"index_uuid": "_na_",
"index": "student3"
}
],
"type": "index_not_found_exception",
"reason": "no such index [student3]",
"resource.type": "index_or_alias",
"resource.id": "student3",
"index_uuid": "_na_",
"index": "student3"
},
"status": 404
}
四、INDEX LIST 查看所有索引
# GET
http://localhost:9200/_cat/indices?v
v参数表示展示表头,下面展示了所有的索引
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open .geoip_databases SHVb70kCSJqFhkKIUNyV4g 1 0 42 37 43mb 43mb
yellow open student KmLC3oT9Te2lUmOQVf8iXw 1 1 0 0 226b 226b
yellow open student1 6qudU33pT5C5-6CDdeFRbw 1 1 0 0 226b 226b
yellow open employee3 Fq3VTWk3Q0eT5iEbYsZXIA 1 1 0 0 226b 226b
yellow open employee IihIiOzbR8-44mL8qeiDpw 1 1 2 0 17.7kb 17.7kb
yellow open employee2 vIHhlBnDRYuWw-B3OYB5cA 1 1 0 0 226b 226b
6、文档操作
一、创建文档 CREATE DOC
# POST
http://localhost:9200/索引名/_doc # JSON 参数
{ "name" : "Cloud9", "gender" : "male", "age" : 24 }
案例:
文档的主键是ES自动生成的,要查询该文档则需要通过id或者文档的属性作为条件
# POST
http://localhost:9200/student/_doc # 响应
{
"_index": "student",
"_type": "_doc",
"_id": "ui1dlX4BrIYsUbCa81Wh",
"_version": 1,
"result": "created",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 0,
"_primary_term": 1
}
二、 CREATE & UPDATE DOC 创建/修改文档
创建或者修改时,指定文档的ID(自定义)
# POST / PUT 两种请求都支持
http://localhost:9200/索引名/_doc/文档ID # JSON参数
{ "name" : "Cloud8", "gender" : "male", "age" : 24 }
案例:
# POST
http://localhost:9200/student/_doc/1001 # JSON参数
{ "name" : "Cloud9", "gender" : "male", "age" : 24 } # 首次创建
{
"_index": "student",
"_type": "_doc",
"_id": "1001",
"_version": 1,
"result": "created",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 1,
"_primary_term": 1
}
# 重复请求,将变成更新
{
"_index": "student",
"_type": "_doc",
"_id": "1001",
"_version": 2,
"result": "updated",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 2,
"_primary_term": 1
}
更新附带校验操作
# POST
# 注意这个操作只能POST请求,地址附加后缀 /_update
# JSON参数需要包括在doc属性种
http://127.0.0.1:9200/索引名/_doc/文档ID/_update # JSON
{
"doc": {
"key1": "value1",
"key2": "value2",
"key3": "value3",
}
}
案例:
# POST
http://127.0.0.1:9200/student/_doc/1005/_update # JSON
{
"doc": {
"name": "zhangsan2",
"nickname": "zhangsan2",
"sex": "女",
"age": 30
}
} # 响应结果
{
"_index": "student",
"_type": "_doc",
"_id": "1005",
"_version": 2,
"result": "noop",
"_shards": {
"total": 0,
"successful": 0,
"failed": 0
},
"_seq_no": 7,
"_primary_term": 1
}
三、GET DOC BY ID 查看文档
# GET
http://localhost:9200/student/_doc/1001
案例:
# GET
http://localhost:9200/student/_doc/1002 # 查询成功
{
"_index": "student",
"_type": "_doc",
"_id": "1002",
"_version": 2,
"_seq_no": 5,
"_primary_term": 1,
"found": true,
"_source": {
"name": "Cloud9",
"gender": "male",
"age": 24
}
} # 查询未找到
{
"_index": "student",
"_type": "_doc",
"_id": "1003",
"found": false
}
四、DELETE DOC 删除文档
# DELETE
http://127.0.0.1:9200/索引名/_doc/文档ID
案例:
# DELETE
http://127.0.0.1:9200/student/_doc/1005 # 删除成功
{
"_index": "student",
"_type": "_doc",
"_id": "1005",
"_version": 3,
"result": "deleted",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 8,
"_primary_term": 1
}
# 删除失败 文档不存在
{
"_index": "student",
"_type": "_doc",
"_id": "1005",
"_version": 4,
"result": "not_found",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 9,
"_primary_term": 1
}
7、映射操作
一、给指定索引创建映射:
# PUT
http://127.0.0.1:9200/索引名/_mapping
# JSON参数
{
"properties": {
"key1": {
"type": "text",
"index": false
},
"key2": {
"type": "boolean",
"index": false
},
"key3": {
"type": "long"
}
}
}
映射设定支持的K键类型:
Text
Keyword
Long
Integer
Short
Byte
Double
Float
Half Float
Boolean
Date
Binary
二、查看映射:
# GET
http://127.0.0.1:9200/索引名/_mapping
案例:
# GET
http://127.0.0.1:9200/student/_mapping # 结果
{
"student": {
"mappings": {
"properties": {
"age": {
"type": "long"
},
"gender": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"name": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"nickname": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"sex": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}
}
三、创建索引时直接设定映射
# PUT
# 和第一个差不多,没有 /_mapping路径要求
http://127.0.0.1:9200/索引名 # JSON参数
{
"properties": {
"key1": {
"type": "text",
"index": false
},
"key2": {
"type": "boolean",
"index": false
},
"key3": {
"type": "long"
}
}
}
【ElasticSearch】01 CRUD操作的更多相关文章
- ElasticSearch基础+文档CRUD操作
本篇博客是上一篇的延续,主要用来将年前学习ES的知识点做一个回顾,方便日后进行复习和汇总!因为近期项目中使用ES出现了点小问题,因此在这里做一个详细的汇总! [01]全文检索和Lucene (1)全文 ...
- 第三百六十二节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)基本的索引和文档CRUD操作、增、删、改、查
第三百六十二节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)基本的索引和文档CRUD操作.增.删.改.查 elasticsearch(搜索引擎)基本的索引 ...
- Elasticsearch技术解析与实战(二)文档的CRUD操作
启动Elasticsearch和kibana 访问Elasticsearch:http://localhost:9200/?pretty 访问kibana:http://localhost:5601 ...
- 四十一 Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)基本的索引和文档CRUD操作、增、删、改、查
elasticsearch(搜索引擎)基本的索引和文档CRUD操作 也就是基本的索引和文档.增.删.改.查.操作 注意:以下操作都是在kibana里操作的 elasticsearch(搜索引擎)都是基 ...
- elasticsearch入门(简单的crud操作)
记录一下,elasticsearch从创建索引到插入数据的一个crud操作. 一.创建索引 curl -XPUT "http://192.168.99.1:9200/productindex ...
- Elasticsearch的CRUD:REST与Java API
CRUD(Create, Retrieve, Update, Delete)是数据库系统的四种基本操作,分别表示创建.查询.更改.删除,俗称"增删改查".Elasticsearch ...
- ElasticSearch第二步-CRUD之Sense
ElasticSearch系列学习 ElasticSearch第一步-环境配置 ElasticSearch第二步-CRUD之Sense ElasticSearch第三步-中文分词 ElasticSea ...
- 【JAVA与DOM4J实现对XML文档的CRUD操作】
一.简介 1.网上下载DOM4J 1.6.1压缩包,解压开之后,发现几个目录和一个jar文件,jar文件是必须的文件其它目录: docs目录:帮助文档的目录,单击index.html: Quick s ...
- 【ELK】4.spring boot 2.X集成ES spring-data-ES 进行CRUD操作 完整版+kibana管理ES的index操作
spring boot 2.X集成ES 进行CRUD操作 完整版 内容包括: ============================================================ ...
- SpringMVC 使用 RESTful 架构实现 CRUD 操作
软件152 余建强 源码下载:http://download.csdn.net/detail/qq_35318576/9826210 1 使用框架 SpringMVC.Maven.Ajax.JSTL. ...
随机推荐
- SELinux 基本原理
首发公号:Rand_cs SELinux 基本原理 本文讲述 SELinux 保护安全的基本原理 安全检查顺序 不废话,直接先来看张图 当我们执行系统调用的时候,会首先对某些错误情况进行检查,如果失败 ...
- Vue 3与ESLint、Prettier:构建规范化的前端开发环境
title: Vue 3与ESLint.Prettier:构建规范化的前端开发环境 date: 2024/6/11 updated: 2024/6/11 publisher: cmdragon exc ...
- k8s介绍
k8s容器编排系统 k8S是谷歌几十年来研发的一套系统,更新了运维领域的玩法. 内容很多,先快速练习玩法,知道是什么就行. 具体[为什么]再花时间慢慢学吧! 0.参考资料 1. k8s能干什么 htt ...
- 如何生成war包
pom.xml <packaging>war</packaging> 引入tomcat <dependency> <groupId>org.spring ...
- Spring AOP 中@Pointcut的用法(多个Pointcut)
Spring AOP 中@Pointcut的用法(多个Pointcut) /** swagger切面,分开来写 **/ @Aspect @Component public class ApiOpera ...
- mysql时间字段新增和修改默认时间,删除字段
mysql时间字段新增和修改默认时间,删除字段##新增字段ALTER TABLE tbl_test ADD COLUMN `create_time` DATETIME NULL DEFAULT CUR ...
- 【IEEE 出版】 第三届能源与电力系统国际学术会议 (ICEEPS 2024)
[连续2届会后4-5个月EI检索,检索稳定!特邀院士.Fellow 报告!]第三届能源与电力系统国际学术会议 (ICEEPS 2024)以"创造更加柔性.智能的能源电力系统"为主题 ...
- kubernetes安装Prometheus
安装 在目标集群上,执行如下命令: kubectl apply -f https://github.com/512team/dhorse/raw/main/conf/kubernetes-promet ...
- CSDN 大规模抓取 GitHub 上的项目到 GitCode,伪造开发者主页引公愤
事件起因 CSDN旗下的GitCode最近因为一种极其不道德的行为引起了开发者的广泛愤怒和抗议.CSDN在没有通知或征求开发者同意的情况下,悄悄地将大量GitHub上的开源项目搬运到了其自己的GitC ...
- 【WPF】根据选项值显示不同的编辑控件(使用DataTemplateSelector)
接了一个小杂毛项目,大概情形是这样的:ZWT先生开的店是卖拆片机的,Z先生不仅卖机器,还贴心地提供一项服务:可以根据顾客需要修改两个电机的转向和转速(机器厂家有给SDK的,但Z自己不会写程序).厂家有 ...