一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第4天,点击查看活动详情。
前言
在更文活动的第三天,我们已经完成了es集成ik分词器,今天我们介绍一下es开发利器kabana。
安装kibana
大家可能听说过elk日志追踪,其中e当然就是es,l代表logstash,k就是代表kibana(关于elk日志收集如果大家有兴趣我会在后续的文章中讲一下如何集成)。kibana的作用相当于提供了一个可视化界面供我们按照规则开进行es sql开发。下面我们来安装一下
- 前往这个地址kibana加速下载,点击download然后压缩。注意,此处要和es的版本一致。
- 找到kibana的安装路径,我们直接双击/bin目录下的kibana.bat启动即可。
- 启动完成之后访问http://localhost:5601 即可访问到kibana的主页
- 如果是第一次启动的话会提示要输入秘钥。我们直接点击输入凭证下方超链接进入自己设置,默认输入地址是我们的es地址。所以我们进入即可(这里我进入的时候忘记截图了,大家有疑问可以在评论区中截图)
初始kabana
我这里主要介绍一下kabana8中我们常用的工具
- 索引管理:(http://127.0.0.1:5601/app/management/data/index_management/indices) 这个页面如果是自搭建es可能用的比较多,它可以监控我们当前es中的索引,如下图所示:
我简单介绍图中标注的这几处地方
- 这里显示的是我们的索引列表,索引查询支持模糊匹配,例如想查询名称中含有demo的索引,只需要在输入框中输入demo即可,注意es的搜索结果是可以排序的,运用好了的话在平常的工作中会节约大部分排查问题的时间。
- 代表有几个分区
- 代表有几个备份
- 代表索引中有几条数据
- 占用的内存
- 这里我们看的主要是是否查询隐藏索引的选项,有时候我们会发现es数据占用的空间很大,但是我们的业务量可能没有那么多,这个时候可能就是隐藏的监控和日志占用的空间比较大了。
- 第七处我没有标记出来,是截图中的那个蓝色的按钮区域,我们在这里可以进行索引数据清空,索引删除等操作(所以说,我们必须在生产环境上给es、kabana加上账号密码,保证数据安全)
- dev tools:(http://127.0.0.1:5601/app/dev_tools#/console) 见名知意,做个饭就是用来开发的,初始化页面如下
这里示例案例是查询我们所有索引里的数据,我简单介绍一我标注的这几个地方
- 声明我们请求的方法,一般是是四个GET(查询配置居多) POST(查询数据居多) DELETE(删除数据居多) PUT(初始化索引、修改索引、添加数据居多)
- 请求体和请求路径
- 运行查询体的方法
- 查询出来的结果显示(json格式)
dev tools使用时间
这里介绍一下如何使用dev tools,按照创、增、查、删来依次说明
- 创:创建索引,我们的内容如下
PUT day_two_demo
{
"settings": {
"number_of_shards": 1,
"number_of_replicas": 0
}
}
- 增:添加一条数据的内容如下
PUT /day_two_demo/_doc/123
{"name":"hello world","age":18,"balance":100.0,"enabled":true}
- 查:查询索引配置、索引内数据等
- 查询配置可以直接传入的内容如下
GET day_two_demo
在右侧即可显示索引的配置信息 2. 查询数据:我们先随机查询插入几条数据,例如名称张三、李四等,我们可以传入下边的内容完全匹配查询
POST /day_two_demo/_search
{
"query": {"match":{
"name.keyword":"张三A"
}}
}
相信你也注意到了,我们的请求体的属性中中加上了.keyword。这里解释一下:
Text:
会分词,然后进行索引
支持模糊、精确查询
不支持聚合
keyword:
不进行分词,直接索引
支持模糊、精确查询
支持聚合、、
也可以试一下直接查询name属性,会查询出所有的张、三、A的信息
- 删:删除数据、删除索引
删除数据
一般的查询大部分是根据id查询,我们直接传入内容如下就可以删除对应的数据了
DELETE /day_two_demo/_doc/123
其中123代表内容的id
删除索引
删除索引更为简单我们直接传入请求体如下就可以啦
DELETE /day_two_demo/
结语
今天我们熟悉了一下kabana,并且了解了使用kabana来开发es的query。现在,万事俱备只欠东风,我们将在下一篇文章中探索基于ik分词器的电商搜索实现。欢迎关注点赞!