3. Head插件
上一节说到ES支持Restful
请求,但是那样的话对于我们开发者来说过于麻烦,并且不够直观,我们一般都会使用一个图形化界面来辅助,比如我们用mysql的时候,会用navicat。
那么,在用ES的时候,我们可以用Head插件。
3.1 Head插件的安装
- 下载head插件
- 解压到任意目录,但是要和elasticsearch的安装目录区别开。
- 安装
node.js
,安装cpnm
npm install ‐g cnpm ‐‐registry=https://registry.npm.taobao.org
-
cnpm
是淘宝团队做的国内镜像(速度快,你懂的)
- 将
grunt
安装为全局命令,Grunt是基于Node.js
的项目构建工具。它可以自动运行你所设定的任务。
npm install ‐g grunt‐cli
-
-g
你就可以理解是全局安装
- 安装依赖
cnpm install
- 进入head目录启动head,在命令提示符下输入命令
grunt server
- 打开浏览器测试
http://localhost:9100
,是否成功。
打开之后,核对地址和端口正确之后,点击连接
之后没反应,打开console
之后看到这样的错误信息:
看见Access to XMLHttpRequest
这三个词我猜应该就是跨域的问题(见得太多了)。
这个错误是由于elasticsearch默认不允许跨域调用,而elasticsearch-head是属于前端工 程,所以报错。
那么我们就需要修改elasticsearch的配置,让其允许跨域访问。
- 修改elasticsearch配置文件:
elasticsearch.yml
- 该文件在
es安装目录/config
目录下
增加以下两句命令:
http.cors.enabled: true
http.cors.allow-origin: "*"
- 重启ES。
如果重启之后报错,那可能就是上边两条命令的格式不对,手动输一下。
3.2 Head使用
连接之后,大致的页面应该就是这样:
大概有五部分
- 概览
- 我们可以看到集群的健康值、节点等信息,以及索引状况、索引信息。
- 绿色表示主分片和副本分片都可用;
- 黄色表示只有主分片可用,没有副本分片;
- 红色表示主分片中的部分索引不可用,但是不耽误某些索引的访问。
- 索引
- 可以新建索引。
- 还可以指定分片数和副本数。
- 数据浏览
- 这个不用多解释
- 基本查询
- 高级查询,但是它只能做查询搜索,不能创建、修改和删除数据
- 复合查询
- 发送RESTful API到elasticsearch服务执行,然后它返回执行结果给我们