ElasticSearch的API使用(elastic api)

网友投稿 337 2022-06-07


前言:之前写过如何安装ElasticSearch(以下简称ES)以及简单的crud的使用实例的博客,不过ElasticSearch的版本变化太快,像之前的5.6版本使用的TransPortClient目前已经无法使用了,官方的API变化较快.最近工作中需要用到ES作为查询的中间件,项目组长决定使用7.4.2最新版本,在项目中如何使用ElasticSearch整个任务交给了我,经过几天的研究(瞎折腾),终于把基本的使用方法搞明白了,因为网上关于7.4.2版本的API使用说明实在太少,所以我决定整理成一篇博客发出来~

目录

一:ES的基本数据类型

二:查询的基本语言

三:使用实例

四:总结

 

正文 

一:ES的基本数据类型

ES的数据类型大概可以分为以下几种,值得注意的是ES是没有java中的list或者set这个概念的,每种类型都天然的支持list多层数据,但是如果设置为list的类信息,就必须将数据类型指定为nested,详情看以下介绍:

二:基本的查询语言

 es的查询语言叫做QSL,也就是它的查询语言,和mysql的sql概念类似,所有的查询都需要去匹配相关的QSL才能得到信息,同时QSL又有自己的语法,必须遵守语法才能得到我们想要的信息,接下来我们就来解析一下QSL.

1.1:Index

Index是ES的数据库的概念,所以一开始就必须建立索引,在7.4.2版本中已经去除了type的概念。所以不需要建立type,在ES中创建一个index也是十分简单的,按照官方的文档,注意索引的名字只能是小写,不能是大写,否则会报错,建立一个index的QSL如下,使用PUT请求的格式(注意PUT要大写),斜杠后面跟上index的名字,然后在设置里写上分片和副本的数量(如果不指定的话,ES会默认设置为shards和replicas为1)。关于如何定义shards和replicas的数量,请参考xxx.

1.2:mapping

建立mapping就好比是mysql中创建表结构,我们要来表达业务必须在mapping里面创建具体的数据properties(properties就好比是mysql表中的字段概念),完整的创建一个mapping的结构如下,使用PUT请求,在proerties中声明field的类型,在type中声明数据类型,需要注意的是es的mapping创建之后无法修改,如果需要修改需要重新建立index,然后reindex迁移数据,所以创建mapping之前一定要考虑清楚具体的业务

 1.3:创建index的同时创建mapping

在1.1和1.2中创建index和mapping是分开的,其实也可以一步到位同时创建index和mapping,使用如下语法,在index中声明mappings,具体的创建结构和1.2的mapping保持一致

 

实例:我们来创建一个人,这个有年龄、名字、出生日期等属性(以下命令可以在kibana中直接使用,详情请安装kiana)


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:一个缓存使用的思考:Spring Cache VS Caffeine 原生 API(如何理解缓存)
下一篇:使用HttpReports快速搭建API分析平台
相关文章

 发表评论

暂时没有评论,来抢沙发吧~