¶ ElasticSearch CRUD
Elasticsearch 是一个分布式、可扩展、实时的搜索与数据分析引擎,通过它我们可以构建出一个强大的全文搜索系统,解决诸如文章检索慢,商品检索慢、MySQL的like查询慢这样的问题.
Elasticsearch是基于hadoop创始人道哥的另一杰作Lucene实现的,速度非常快,核心是使用了倒排索引这样的结构。
环境版本:
ElasticSearch 7.11.1
ElasticSearch基本概念
“索引”这个名词在ElasticSearch中经常出现,对应到关系型数据库中就是“库”的概念。
将一个文档存储到一个“索引”(index
,名词)中,也被称为“索引”(动词),这非常类似于 SQL 语句中的 INSERT 关键词,区别在于:当文档已存在时,新文档会替换旧文档。
索引中的可以包含多个“类型”(type
),可以理解为关系型数据库中的“表”。
每个类型(type
)都有自己的映射(mapping
)或者结构定义,就像传统数据库表中的列一样。类型的映射(mapping
)会告诉Elasticsearch不同的文档如何被索引
¶ 创建索引
1 | PUT {{url}}/library/ |
¶ 获取library索引设置信息
1 |
|
¶ 增
¶ 第一种(推荐)
1 | POST {{url}}/library/_doc |
备注: _id
为生成码
¶ 第二种(推荐)
1 | POST {{url}}/library/_create/2 |
备注: _id
为插入id,不可重复
¶ 第三种(不推荐)
1 | POST {{url}}/library/3 |
备注: 此方法生成 _type
类型会覆盖后续插入文档类型且与其他类型不可共存
¶ 删
删除索引 library
1 | DELETE {{url}}/library/ |
删除索引内指定文档
1 | DELETE {{url}}/library/_doc/[_id] |
¶ 改
¶ 第一种
1 | POST {{url}}/library/_doc/[_id]/_update |
¶ 第二种
1 | POST {{url}}/library/_update/[_id] |
¶ 查
查询节点内全部文档
1 | GET {{url}}/_search |
列出library索引下所有文档
1 | GET {{url}}/library/_search |
获取指定 id 的文档
1 | GET {{url}}/library/_doc/2 |
获取指定 id 的文档的指定字段
1 | GET {{url}}/library/_doc/2?_source=price,publish_date |
依据条件同时获取多个文档
1 | GET {{url}}/_mget |
1 | GET {{url}}/library/_mget |