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、映射操作

7版本开始,一个映射只属于一个索引的Type,默认Type为:_doc

一、给指定索引创建映射:

# 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操作的更多相关文章

  1. ElasticSearch基础+文档CRUD操作

    本篇博客是上一篇的延续,主要用来将年前学习ES的知识点做一个回顾,方便日后进行复习和汇总!因为近期项目中使用ES出现了点小问题,因此在这里做一个详细的汇总! [01]全文检索和Lucene (1)全文 ...

  2. 第三百六十二节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)基本的索引和文档CRUD操作、增、删、改、查

    第三百六十二节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)基本的索引和文档CRUD操作.增.删.改.查 elasticsearch(搜索引擎)基本的索引 ...

  3. Elasticsearch技术解析与实战(二)文档的CRUD操作

    启动Elasticsearch和kibana 访问Elasticsearch:http://localhost:9200/?pretty 访问kibana:http://localhost:5601 ...

  4. 四十一 Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)基本的索引和文档CRUD操作、增、删、改、查

    elasticsearch(搜索引擎)基本的索引和文档CRUD操作 也就是基本的索引和文档.增.删.改.查.操作 注意:以下操作都是在kibana里操作的 elasticsearch(搜索引擎)都是基 ...

  5. elasticsearch入门(简单的crud操作)

    记录一下,elasticsearch从创建索引到插入数据的一个crud操作. 一.创建索引 curl -XPUT "http://192.168.99.1:9200/productindex ...

  6. Elasticsearch的CRUD:REST与Java API

    CRUD(Create, Retrieve, Update, Delete)是数据库系统的四种基本操作,分别表示创建.查询.更改.删除,俗称"增删改查".Elasticsearch ...

  7. ElasticSearch第二步-CRUD之Sense

    ElasticSearch系列学习 ElasticSearch第一步-环境配置 ElasticSearch第二步-CRUD之Sense ElasticSearch第三步-中文分词 ElasticSea ...

  8. 【JAVA与DOM4J实现对XML文档的CRUD操作】

    一.简介 1.网上下载DOM4J 1.6.1压缩包,解压开之后,发现几个目录和一个jar文件,jar文件是必须的文件其它目录: docs目录:帮助文档的目录,单击index.html: Quick s ...

  9. 【ELK】4.spring boot 2.X集成ES spring-data-ES 进行CRUD操作 完整版+kibana管理ES的index操作

    spring boot 2.X集成ES 进行CRUD操作  完整版 内容包括: ============================================================ ...

  10. SpringMVC 使用 RESTful 架构实现 CRUD 操作

    软件152 余建强 源码下载:http://download.csdn.net/detail/qq_35318576/9826210 1 使用框架 SpringMVC.Maven.Ajax.JSTL. ...

随机推荐

  1. c#WinFrom自定义图表仪表控件-频谱

    这是为客户定制的一个频谱图表控件,先看下成品效果,gif较大,略等片刻 开发步骤分析: 1.界面有多个间距不等的线分割的区域,每个区域的值范围不同,我们就需要把每个区域定义出来,方便我们操作的时候来计 ...

  2. CF1184E1题解

    CF11841E1 & blog 尽然想让第一条边最大且这条边在最小生成树中,那么这条边就需要尽量晚. 但是假如加上一条边 \(i\) 可以使 \(u_1\) 和 \(v_1\) 联通并且第 ...

  3. Ubuntu Server LTS 修改网卡ip地址、固定IP

    Ubuntu Server LTS 修改网卡ip地址方式.固定IP. 18.04 之前版本通过修改/etc/network/interfaces 方式,18.04 版本开始通过netplan 方式: ...

  4. 30 岁的程序员,要有 "归零" 心态

    大家好,我是码农先森. 古话说的 "三十而立",正是担重之时,却大部分人在职场中都处于不上不下的尴尬境地.已经没有刚毕业时那股子冲劲,被生活和工作磨平了棱角. 在技术思想方面,似乎 ...

  5. spring mvc统一处理接口返回值,aop切面实现,将请求的入参和出参存储在数据库中,切面内重新抛出异常

    spring mvc统一处理接口返回值,aop切面实现,将请求的入参和出参存储在数据库中 aop类实现Aspect的多个方法注解中,只有Around注解的方法是有返回值的,可以对方法的入参和返回值均进 ...

  6. 阿里也出手了!Spring CloudAlibaba AI问世了

    写在前面 在之前的文章中我们有介绍过SpringAI这个项目.SpringAI 是Spring 官方社区项目,旨在简化 Java AI 应用程序开发, 让 Java 开发者想使用 Spring 开发普 ...

  7. 漏洞复现之CVE-2012-1823(PHP-CGI远程代码执行)

    关于CGI知识点 `CGI模式下的参数: -c 指定php.ini文件的位置 -n 不要加载php.ini文件 -d 指定配置项 -b 启动fastcgi进程 -s 显示文件源码 -T 执行指定次该文 ...

  8. mapperTemp

    @Insert("INSERT INTO coxisolate.instanceinfo (instance_id, app_name, create_time, update_time, ...

  9. 数据库学习(一)——DDL数据库定义语句

    定义数据库 创建数据库 使用CRETE DATABASE关键字,指定编码和排序格式 CREATE DATABASE mysqldb DEFAULT CHARACTER SET utf-8 DEFAUL ...

  10. CentOS8 安装ansible

    # 安装epel扩展源 yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y # ...