背景:
工作中我们使用了Elasticsearch作为存储,来支持内容的搜索,Elasticsearch这个软件大家都耳熟能详,它是一个分布式、高扩展、高实时的搜索与数据分析引擎,不仅仅支持文本索引,还支持聚合操作,使用它既可以做数据搜索,还可以做报表分析,非常的方便。
痛点:
在使用过程中我们也遇到了很多的痛点,主要有以下几个:
1、写入的数据不能立马搜索出来:Elasticsearch有一个刷新间隔,只有刷新之后的数据才能被搜索到,如果要在插入数据之后立马想搜索到,就需要程序进行等待,想想挺尴尬的。当然如果你插入的数据想里面查询出来也是有办法的,那就是通过_id进行查询,只有这一个途径。
2、找不到友好的可视化客户端:原来开发的项目都是基于MySQL和Redis的,它们都有比较优秀的可视化客户端软件进行支持,比如navicat for mysql,Redis Desktop Manager等等,它能降低我们学习和使用的难度,让我们即使对MySQL和Redis了解甚少,也不妨碍我们便捷的使用它们。可对于Elasticsearch来说,好长时间我们并没有发现类似的工具,虽然网上搜索有Elasticsearch-Head,可它仅仅支持简单的查询,不能进行数据更新操作;Kinaba是ES的官方作品,功能非常强大,但需要编写DSL语句,操作复杂,不利于小白直接入手,也不利于工作中的快捷使用。
NexNoSQL Client
最近在网上终于搜到一款Elasticsearch可视化的客户端软件,最最关键的是它是免费的,那就赶快薅起来吧。客户端的下载地址:
https://github.com/NexNoSQL/NexNoSQLClient/releases/download/v1.0.0/NexNoSQL-Client-1.0.0-setup.exegithub.com/NexNoSQL/NexNoSQLClient/releases/download/v1.0.0/NexNoSQL-Client-1.0.0-setup.exe
它集成了Elasticsearch、Redis、MongoDB三种存储的数据管理,如果大家项目中使用了这三种,那么就不需要安装三种软件了,安装它一款即可,我主要是用它的ES功能。
1、连接集群:
软件安装之后,直接点击new按钮,就会跳出新增集群的对话框,选择type=elasticsearch,填入对应的名字、IP和端口号,就可以连接到该节点对应的集群上了,ES集群里面有多个节点,我们只需要填写某一个节点的IP和端口号即可。
2、ES功能:索引、索引模板、索引别名、管理监控、高级操作
连接之后我们就能看到该软件具备的elasticsearch功能
3、索引操作
本次我就讲一讲对索引的操作
3.1、建立索引:
点击索引目录旁边的+,右侧就显示出建索引相关的设置,上部分是索引的基础设置,比如索引的名称、类型,分片数、副本数,返回结果大小。下部分是索引字段的mapping设置,比如字段的名称,字段的类型,是否可以检索,看起来是不是很熟悉的味道,和Navicat中设置MySQL表一样简单,再也不用去写复杂的ES脚本了。另外在右侧的“脚本”TAB还有对应的脚本展示,可以供我们学习之用。比如我们设置一个类型,然后看看脚本是怎生成的。
3.2、插入索引数据
当我们建立索引之后,肯定想做的是往索引里面插入数据,ES里面的数据都是JSON格式的,那么我们怎么插入数据呢?点击索引目录,然后就能看到集群里面所有的索引,然后点击我们刚刚新增的test2索引,就出现了下图的界面:
单击“新增文档”就跳出对应的对话框,然后我们就可以输入JSON格式的内容了:
3.2、查询索引数据
这是这个软件的最大的优点,查询数据特别的简单,可以选择的查询条件非常多:
支持all、id、must、most not、should,另外还支持sort排序操作。
我们选择all查看一下,就能查询出相关的数据,并且还能展示该索引的总数,
3.3、修改和删除索引数据
查询出数据之后,就可以对数据进行修改和删除了,就在上图的右边有操作按钮,是不是特别的方便。
最后:
今天先写到这里,这里仅仅是索引相关的操作,还有其他的内容大家自行探索吧,另外还有Redis和MongoDB的功能,我后续再写几篇文章来跟大家分享使用心得。