最近在学习elasticsearch.就想着记录下es的基本操作。
es的基本概念:
1、索引index:相当于mysql的database
2、类型type:相当于mysql的表
3、文档:相当于mysql的行
新增索引:
a、可以借助于es的head插件:
这里的索引名称是自定义的。
b、使用接口创建索引:
我这里是使用postman进行接口请求的。创建一个people索引,并且映射一个man类型。man类型里面有name,country,age,date四个属性。
新增文档:在man类型中新增一条数据,我这里采用自定义id,所以url地址后面有个1,使用put请求
也可以采用es自动生成ID,就不需要后面的id了,并且需要使用post请求:
修改文档:
a、基于文档进行修改:
我想修改ID为1 的数据的name。注意接口地址后面有个_update
b、基于脚本的修改:
脚本修改,可以使用es自带的语言painless ,也可以使用python等脚本语言。
或者使用params,注意圈红部分与上图的区别
删除记录:删除要使用delete请求
比如我要删除people文档的man类型下ID为1的数据:
删除索引:
查询数据:
a、基本查询:
查询book索引下,novel类型中id为1的数据:
b、条件查询:
match_all表示查询所有,from ,size类似于mysql中的分页查询。
关键字查询:match:{...}
聚合查询:根据word_count聚合
下面是聚合后查询输的信息
也可以使用聚合查询进行计算:
stats表示统计,会查询出最大,最小,平均,个数,求和等值,stats也可以换成max,min,avg,sum 等,
说完基础查询,我们再来说下高级查询:
高级查询分为:子条件查询跟复合条件查询。
子条件查询:特定条件查询所指的特定值。
query context:
全文本查询:
习语匹配查询
多字段匹配查询:匹配author跟title字段中包含ES的内容
语法查询:
字段级别的查询
filter Context:查询过程中只判断文档是佛满足条件,只返回yes/no ,不会考虑匹配程度。
复合条件查询:以一定的逻辑组合子条件进行查询。
另外这篇文章写得不错,可以参考:https://blog.csdn.net/laoyang360/article/details/51931981