首先es在海量数据的搜索能力非常好,es你可以把他看成一个搜索引擎数据库,他是个非关系型数据库。他的语法有很大的不同,好像都是json风格的。还有一点需要说的就是es 的数据是存在硬盘上的,
我们先来看一下mysql和es的区别吧。一张图给展示出来。
仔细上图的同时,自己配上es的语法也行会更好you.
哎,那我就带着大家看一看es的基本语法吧,你能对mysql和es的不同点有个初步的了解
先上一张chatgpt的回答解释下划线开头的单词
es的基本语法
1.查看es的集群状态: GET _cluster/health?pretty 结果:
2.建立索引
PUT /teacher
结果:
3.建立带有分词器的索引:(如需使用插件类的分词器,需要在建立索引的时候指定,索引一旦建立就不能改变分词器)
结果
4.设置分片数:
我们在这里也说一下分片
ES 提供分片机制,同一个索引可以存储在不同分片(数据容器) 意思说一个索引可以分为多个切片,然后分别储存到不同的es节点上
5.删除索引:
DELETE /teacher
结果:
6.设置索引映射:映射分为dynamic mapping(动态映射),explicit mapping(静态映射),strict mapping(严格映射)
a.动态映射,当设置mapping是没有设置相关字段,插入的时候有,在查询_mapping时可以查到
b.静态映射,当设置mapping时没有设置相关字段,插入的时候有,在查询_mapping时查不到,数据会存储
c.严格映射,插入的时候会直接报错
结果
7.向es中插入数据:
结果:
8.更新数据:(更新不是修改原数据,是将原数据标记为删除,重新插入了一条数据)
结果:
9.删除一条数据:
DELETE /user/_doc/3
结果
10.获取全量数据:
10.根据条件获取数据:
a.并:must(last_name='hong' and first_name='xiao')
b.或:should(last_name='hong' or first_name='xiao')
c.不等于:must_not(last_name!='hong' and first_name!='xiao')
e:根据某个字段排序&只返回需要的字段
f:match,match_phrase,match_phrase_prefix和multi_match之间的区别
h:filter(条件过滤查询,过滤条件的范围用range表示gt表示大于、lt表示小于、gte表示大于等于、lte表示小于等于)
i:复合查询需要使用bool
j:keyword,text,match,term区别
k:ES的聚合查询avg、max、min、sum
该如何分词呢
es是谁的集成呢?
下回分解