前言
常言道:工欲善其事,必先利其器。对于我们开发和测试同学来说,在日常的工作中有一款趁手的工具那真实如虎添翼啊,工作效率可是蹭蹭蹭的往上长,节省下来的时间摸摸鱼该有多好啊。最近我们系统开始使用elasticsearch来支持搜索,于是就想在网上找一款类似于Navicat之于MySQL的客户端软件,能轻轻松松的访问ES集群里面的数据,帮助我们有更多的时间摸鱼。
网上推荐的四种客户端:
1、Elasticsearch-Head:
一个浏览器插件,功能比较单一,只能支持索引数据的查询,无法进行增、删、改操作,如果仅仅是测试人员使用的话,勉强可以用,用来查看数据接口,可如果是研发人员,那么没有增、删、改怎么能行?直接抛弃。
2、ElasticHD:
桌面软件,需要安装,界面比Elasticsearch-Head要美观许多,支持的功能也比较单一,只能进行查询,并且还需要写DSL语句,这个语句谁都能记得住啊,直接抛弃。
3、Kinaba:
这可是ES官方推荐的客户端哦,它安装的ES集群的机器上面,然后提供URL进行访问,可以说是一个web版的客户端。
索引数据操作:它不需要写DSL语句就能查询,这个是非常大的进步了哦,但是还不支持不写DSK语句进行增、删、改,这对不熟悉DSL语句的我们来说,是非常头痛的事情。想一想还是要再考察考察
4、NexNoSQL Client:
它是一款支持Elasticsearch、Redis、MongoDB三合一的可视化客户端管理工具,也是桌面软件,需要安装。安装之后就可以添加这三种集群,然后进行相应的操作了,见下图:
NexNoSQL Client操作ES的优势
1、不需要写DSL操作索引数据:
比如我们想查询age=2的数据,全部都是下拉列表框选择,然后填入数字2,点击查询就查询出我们需要的所有数据,支持查看总量和分页,见下图:
是不是特别的方便?如果我们要写DSL语句,那么得写这么多:
java
GET test_index/_search
{
"query": {
"term": {
"age": {
"value": 2
}
}
}
}
两种方式比较,效率提升可不止一倍哦。
2、不需要写DSL操作索引结构:
这个时候,如果我想修改一下索引的结构,当前test_index只有两个字段,uid和age,这个时候我想增加一下name字段,那么NexNoSQL Client怎么操作呢,其实也是非常的简单,点击"建模"TAB,然后点击 "add item",就会新增一行,然后我们输入name,选择name的类型,这里我们选择text,让它支持分词搜索,再点击save就搞定了:
具体的DSL脚本我就不写出来了,它长了,都有点想骂娘了。
3、不需要写DSL操作索引模板结构
哈哈,大家是不是忘记了还有索引模板,其实啊,在使用es的时候,索引模板真的是很好的建模实体,我们单个索引能存储的数据不易太大,那怎么办呢,我们就可以先建一个索引模板,然后根据一定的规则自动生成索引,如果大家不是很好的理解,那么可以参考log4j或者logback生成日志文件的原理类似,比如我们的项目就是根据索引存储数据的不同,分别按天和按月来生成。
这要比写DSL语句easy太多了。顶不顶???
4、不需要写DSL操作索引别名结构
是不是很少关注索引别名?索引别名有点类似于MySQL的view一样,它可以针对多个索引建立起别名,比如对外我们提供一个别名,其实内部是查询十个索引的数据。那么针对别名的操作就是两类:第一类是数据查询,第二类是建立索引别名与索引的关联关系,数据查询其实和索引数据的查询是一模一样的,这里就不再赘述了。给大家演示一下建立索引的关联关系吧:
所见即所得,让我们接着奏乐接着舞吧。
总结:
从网上推荐的四款可视化客户端,我们从使用的便捷性的由难到易一一列举了出来,最后详细的介绍了NexNoSQL Client这块神器。看到这里是不是觉得,即使是小白,也能轻松的搞定对ES的操作。