背景:

工作中我们使用了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.exe​github.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的功能,我后续再写几篇文章来跟大家分享使用心得。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐