ES 数据管理1
一、概述
ES 是面向文档(document oriented)的,意味着它可以存储真哥哥对象或文档(document).
它不仅是存储,还会缩阴每个文档的内容使之可以被搜索。 ES 使用 JSON 作为文档序列化格式。
ES存储一个员工文档格式示例如下:
{ "name":"张三", "age":18, "email":"123456789@qq.com", "interests":["游泳","滑雪"] }
二、基本操作
1、 创建索引
格式: PUT /索引名称
例: PUT /es_db
2、查询索引
格式: GET /索引名称
例: GET /es_db
3、删除索引
格式: DELETE /索引名称
例: DELETE /es_db
4、添加文档
格式: PUT /索引名称/类型/id
例 PUT /es_db/_doc/1 { "name":"张三", "sex":1, "age",18, "address":"南天门西行200米", "remark":"java developer" }
5、修改文档
格式: PUT /索引名称/类型/id
PUT /es_db/_doc/1 { "name":"张二狗", "sex":2, "age",36, "address":"蓬莱仙岛C座108户", "remark":"boss" }
6、查询文档
格式: GET /索引名称/类型/id
例: GET /es_db/_doc/1
7、 删除文档
格式: DELETE /索引名称/类型/id
例: DELETE /es_db/_doc/1
三、 查询操作
使用 8.2.0 版本, 经测试, 不需要加 _doc 类型, 否则会报错
1、 查询当前类型中所有文档 _search
例: GET /es_db/_search // SQL : select * from student
2、条件查询,如要查询 age 等于 28 岁的 _search?q=*:***
例: GET /es_db/_search?q=age:28 // SQL select * from student where age = 28
3、 范围查询,如要查询 age 在 18 到 23 之间的 _search?q=***[** TO **] 注意: TO 必须大写
例: GET /es_db/_search?q=age[18 TO 23] // SQL select * from student where age between 18 and 23
4、 根据多个 ID 进行批量查询 _mget
例: GET /es_db/_mget { "ids":["1","2"] } //SQL select * from student where id in (1,2)
5、 查询年龄小于等于 32 岁的 :<=
例: GET /es_db/_search?q=age:<=32 // SQL select * from student wehre age <= 32
6、 查询年龄大于 32 岁的 :>
例: GET /es_db/_search?q=age:>32 // SQL select * from student wehre age > 32
7、 分页查询 from=*&size=*
例: GET /es_db/_search?q=age[12 TO 36]&from=0&size=1 //SQL select * from student where age between 12 and 36 limit 0,1
8、 对查询结果只输出某些字段 _source=字段,字段
例:GET /es_db/_search?_source=name,age //SQL select name,age from student
9、 对查询结果排序 sort=字段:desc/asc
例: GET /es_db/_search?sort=age:desc //SQL select * from student order by age desc