基础概念
目录
说明#
本文来自于博客园,用以记录通过访问接口的方式来访问 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...