基础概念

目录

说明#

本文来自于博客园,用以记录通过访问接口的方式来访问 es 的简单操作。
大部分源自原文,但是因为ES版本不同,做了部分内容修改。此文ES版本7.6
 
Relational DB ⇒ Databases ⇒ Tables ⇒ Rows ⇒ Columns
Elasticsearch ⇒ Indices ⇒ Types ⇒ Documents ⇒ Fields
RDMS
Elasticsearch
数据库(database)
索引(index)
表(table)
类型(type)
行(row)
文档(document)
列(column)
字段(field)
表结构
映射
索引
全文索引
SQL
查询DSL
SELECT * FROM tablename
GET http://...
UPDATE table SET
PUT http://...
DELETE
DELETE http://...
es & mysql 概念对比表。type类型将会在以后的版本中被移除

es 接口访问示例#

1.文档操作#

1.索引操作#

建立索引就相当于创建数据库,创建数据库就要创建表结构。es的建立索引就是创建数据库这一操作。

创建索引

返回结果:

获取索引

返回结果:

2.设置mapping#

设置Index的Mapping,也就是设置数据的表结构

删除索引

返回:

重新创建索引

返回:
name:text类型,会进行分词,支持模糊检索。
name.keyword : 这相当于是嵌套了一个字段,keyword类型,只能精确匹配,不支持分词。超过256字符长度不索引,也就没法搜索到。
age:long类型,支持精确匹配。index 为 true 才可以匹配
gender:keyword类型,只能精确匹配,不支持分词。

3.插入文档#

插入文档,即使用接口,将 json 文档放入 es 索引中。
请求必须指定文档的索引名称,唯一的文档 ID, 以及请求体中一个或多个键值对。
返回:

4.获取文档#

根据 id 获取文档。

返回:

5.删除文档#

根据 id 删除文档

返回:

加入两个测试数据

根据筛选条件删除数据

返回:
可使用 {"query": {"match_all":{}}} 的方式删除所有

6.更新文档#

覆盖更新(先删除后添加):

更新完成后,可以看到原有 name age gender只剩下 age,相当于删除原有。
返回:

部分更新(不删除,更新相应字段) 建议用此

返回:

根据查询条件更新

返回:

7.批量获取#

批量获取文档(不指定索引库)
返回:

批量获取文档(指定索引库或类型)

8.批处理操作#

ES允许我们在一次请求中做多种操作,比如在一次请求中同时进行增删改查操作:

批处理操作

但是提交的参数必须是一行一行的json,且结尾必须有换行符,要这样ES才好处理,因为不是标准的json格式,这里PostMan识别json格式错误,但是问题不大。
json body:
返回:

9.重建索引#

重新建立索引,相当于拷贝一份.
json body:
返回:

2.查询操作#

1.多索引和多类型查询#

返回:

2. 查询字符串查询#

通过 GET 访问的方式,在 URL 后面添加查询字符串的方式查询。
说明:
  • from=0&size=10 : 分页获取
  • q=name:ceshi006 OR name:ceshi007: 表示查询 name 为 ceshi006 或 ceshi007 的文档。OR 可以换做 AND
  • sort=age:asc排序,表示按照 age 进行排序。asc 降序, desc 升序
  • _source=name,age投影,选择返回的字段,多个字段用 , 隔开
返回:
可使用插入文档的方式放入多个数据供实验. 更多查询参数和语法[点此查看]([Search API | Elasticsearch Guide 7.13] | Elastic)

3. 请求体查询#

通过请求体进行查询。
json body:
返回:
更多操作参数[点此查看]([Request body search | Elasticsearch Guide 7.13] | Elastic)
Loading...
文章列表
王小扬博客
云原生
Git
Elasticsearch
Apollo
产品
Think
生活技巧
软件开发
计算机网络
CI
DB
设计
缓存
Docker
Node
操作系统
Java
大前端
Nestjs
其他
PHP
AI