Elasticsearch-head可视化工具安装及实例使用介绍

一、环境准备

由于ES官方并没有为ES提供界面管理工具,仅仅是提供了后台的服务。elasticsearch-head是一个为ES开发的一个页面客户端工具,其源码托管于GitHub,地址为:
https://github.com/mobz/elasticsearch-head

提供了4种安装方式:

源码安装,通过npm run start启动(不推荐)
通过docker安装(推荐)
通过chrome插件安装(推荐)
通过ES的plugin方式安装(不推荐)

本文只介绍:源码安装方式,其他方式可以找度娘、知乎

1.1 下载

从地址:https://github.com/mobz/elasticsearch-head
下载源码,解压后进入此目录,执行安装命令:

npm install

报错了:
在这里插入图片描述
从截图可以看见主要错误是: Failed at the phantomjs-prebuilt@2.1.16 install script.
经过度娘,可以找到解决方案:

>npm install phantomjs-prebuilt@2.1.14 --ignore-scripts

注意:这个地方的版本是2.1.14,虽然报错是2.1.16,但是需要安装2.1.14才能解决,这个还不知道原因,请找大牛们咨询。

这样执行完毕后,在进行安装即可。

npm install

1.2 运行

执行命令:

>npm run start

在这里插入图片描述出现如上截图,说明已经正常可以启动了。

二、查看Elasticsearch-head界面

2.1 服务端安装及配置

详情步骤点击这里!

2.2 配置跨域访问

注意:
由于前后端分离开发,所以会存在跨域问题,需要在服务端做CORS的配置,如下:
vim elasticsearch.yml

http.cors.enabled: true http.cors.allow-origin: "*"

配置完,后重启服务端程序。

cd bin 
./elasticsearch 或 ./elasticsearch -d #后台启动

2.3 查看界面

输入:http://localhost:9100/
在这里插入图片描述

这就是Elasticsearch-head的首页。

2.3.1 基本概念
  • 索引
    索引(index)是Elasticsearch对逻辑数据的逻辑存储,所以它可以分为更小的部分。
    可以把索引看成关系型数据库的表,索引的结构是为快速有效的全文索引准备的,特别是它不存储原始值。Elasticsearch可以把索引存放在一台机器或者分散在多台服务器上,每个索引有一或多个分片(shard),每个分片可以有多个副本(replica)。
  • 文档
    存储在Elasticsearch中的主要实体叫文档(document)。用关系型数据库来类比的话,一个文档相当于数据库表中的一行记录.Elasticsearch和MongoDB中的文档类似,都可以有不同的结构,但Elasticsearch的文档中,相同字段必须有相同类型。文档由多个字段组成,每个字段可能多次出现在一个文档里,这样的字段叫多值字段(multivalued)。每个字段的类型,可以是文本、数值、日期等。字段类型也可以是复杂类型,一个字段包含其他子文档或者数组。
  • 映射
    所有文档写进索引之前都会先进行分析,如何将输入的文本分割为词条、哪些词条又会被过滤,这种行为叫做映射(mapping)。一般由用户自己定义规则。
  • 文档类型
    在Elasticsearch中,一个索引对象可以存储很多不同用途的对象。例如,一个博客应用程序可以保存文章和评论。每个文档可以有不同的结构。不同的文档类型不能为相同的属性设置不同的类型。例如,在同一索引中的所有文档类型中,一个叫title的字段必须具有相同的类型。
2.3.2 数据浏览

切换到数据浏览标签页:
在这里插入图片描述
左侧显示索引,点击索引名称后,右侧会显示内容列表,单击内容列表中的记录可以弹出详情信息。
在这里插入图片描述

2.3.3 基本查询
  • 基本查询
    在这里插入图片描述
  • 过滤查询
    在这里插入图片描述
  • 1:选择索引
  • 2:选择过滤方式,有三种:
must:    必须匹配。贡献算分
must_not:过滤子句,必须不能匹配,但不贡献算分 
should:  选择性匹配,至少满足一条。贡献算分
filter:  过滤子句,必须匹配,但不贡献算分
  • 3:选择过滤条件
  • 4:显示查询结果
2.3.4 复合查询
  • 提交: 将如下一条用户信息的数据提交到es中创建索引:
 url: http://192.168.22.2:9200/haoke/user/1001/

提交类型为:PUT
数据为:

{
  "id": 1001,
  "name": "张三",
  "age": 20,
  "sex": "男"
}

此haoke索引刚开始并没有,类型user也没有 添加记录的同时创建了此索引

 索引名字是:haoke; 
 索引的类型是:user; 
 本记录的id是:1001
 返回的信息可以看到创建是成功的,并且版本号是1;ES会对记录修改进行版本跟踪,第一次创建记录为1,同一条记录每修改一次就追加1。 
 至此一条记录就提交到ES中建立了索引,注意HTTP的方法是PUT,不要选择错了   

如图所示:
在这里插入图片描述

  • 查询: 查询刚刚添加的数据,url还是:http://192.168.22.2:9200/haoke/user/1001/
    类型为:get
    数据为:{}
    返回结果为:
{
	"_index": "haoke",
	"_type": "user",
	"_id": "1001",
	"_version": 1,
	"_seq_no": 0,
	"_primary_term": 1,
	"found": true,
	"_source": {
		"id": 1001,
		"name": "张三",
		"age": 20,
		"sex": "男"
	}
}

操作如截图:
在这里插入图片描述

  • 更新: 修改刚刚添加的数据,把张三的年龄修为21,url还是:http://192.168.22.2:9200/haoke/user/1001/
    类型为:put
    数据为:
{
  "id": 1001,
  "name": "张三",
  "age": 21,
  "sex": "男"
}

返回结果为:

{
	"_index": "haoke",
	"_type": "user",
	"_id": "1001",
	"_version": 2,
	"result": "updated",
	"_shards": {
		"total": 2,
		"successful": 1,
		"failed": 0
	},
	"_seq_no": 1,
	"_primary_term": 1
}

操作截图:
在这里插入图片描述

说明:更新接口与创建接口完全一样,ES会查询记录是否存在,如果不存在就是创建,存在就是更新操作。结果中的version字段已经成了2,因为我们这是是修改,索引版本递增;result字段是updated,表示这次不是新建而是更新。

  • 删除:删除张三信息,url仍然是:http://192.168.22.2:9200/haoke/user/1001/
    类型为:delete
    数据为:{}
    返回结果为:
{
	"_index": "haoke",
	"_type": "user",
	"_id": "1001",
	"_version": 3,
	"result": "deleted",
	"_shards": {
		"total": 2,
		"successful": 1,
		"failed": 0
	},
	"_seq_no": 2,
	"_primary_term": 1
}

操作截图:
在这里插入图片描述

说明:结果中的version字段已经成了3,因为我们这是是删除,索引版本递增;result字段是deleted,表示是删除。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值