【Elasticsearch全文搜索引擎实战】之Head插件实践
简介
Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github也都采用它做的搜索。
更多Elasticsearch的相关知识,请阅读官网《Elasticsearch: 权威指南》。

下面我们重点讲Head插件。
Elasticsearch head是一个用浏览器跟ES集群交互的插件,可以查看集群状态、集群的doc内容、执行搜索和普通的Rest请求等。GitHub地址。
1. ES 5.0+ 版本Head插件安装
ES 5.X 和之前的版本不太一样,elasticsearch-head 做为一个单独的服务,所以就没有了 plugin install,网上大部分文章也都是使用的plugin install安装方式。
1.1 安装NodeJS
使用yum安装
[root@node1 ~]# yum install -y nodejs
或者自己下载tar文件解压
wget https://npm.taobao.org/mirrors/node/latest-v4.x/node-v4.5.0-linux-x64.tar.gz
tar -zxvf node-v4.5.0-linux-x64.tar.gz
配置下环境变量,编辑/etc/profile添加
export NODE_HOME=/usr/local/node-v4.5.0-linux-x64
export PATH=$PATH:$NODE_HOME/bin/
export NODE_PATH=$NODE_HOME/lib/node_modules
执行 source /etc/profile
1.2 安装npm
[root@node1 ~]# npm install -g cnpm --registry=https://registry.npm.taobao.org
1.3 安装grunt
[root@node1 ~]# npm install -g grunt
[root@node1 ~]# npm install -g grunt-cli --registry=https://registry.npm.taobao.org --no-proxy
最后确认检查:
[es@node1 ~]$ node -v
v6.12.0
[es@node1 ~]$ npm -v
3.10.10
[es@node1 ~]$ grunt -version
grunt-cli v1.2.0
1.4 下载head插件源码
可以下载zip包或者使用git,这里使用git方式
[es@node1 ~]$ git clone git@github.com:mobz/elasticsearch-head.git
1.5 安装Head插件
[es@node1 ~]$ npm install
- 此处可能会报错,
npm install Err,PhantomJS not found on PATH",可尝试使用taobao镜像安装
[es@node1 elasticsearch-head-master]$ npm install -g cnpm --registry=https://registry.npm.taobao.org
2. 配置
2.1 停止ES
如果ElasticSearch已经启动,需要先停止
[es@node1 ~]$ jps
3261 Elasticsearch
3375 Jps
[es@node1 ~]$ kill 3261
2.2 配置 ElasticSearch,使得HTTP对外提供服务
[es@node1 elasticsearch-6.1.1]$ vi config/elasticsearch.yml
添加如下内容:
# 增加新的参数,这样head插件可以访问es。设置参数的时候:
http.cors.enabled: true
http.cors.allow-origin: "*"
注意:后面要有空格
2.3 修改Head plugin 配置文件
[es@node1 elasticsearch-head-master]$ vi Gruntfile.js
找到connect:server,添加hostname一项,如下
connect: {
server: {
options: {
hostname: ':*.*.*.*:',
port: 9100,
base: '.',
keepalive: true
}
}
}
3. 启动
3.1 确认es已经启动
[es@node1 elasticsearch-6.1.1]$ bin/elasticsearch -d
[es@node1 elasticsearch-6.1.1]$ jps
3451 Jps
3436 Elasticsearch
3.2 启动head
(1) 使用grunt启动
[es@node1 elasticsearch-head-master]$ grunt server
# 需要在head的目录下运行
Running "connect:server" (connect) task
Waiting forever...
Started connect web server on http://:*.*.*.*:9100
(2) 使用npm启动
[es@node1 elasticsearch-head-master]$ npm run start
> elasticsearch-head@0.0.0 start /home/es/elasticsearch-head-master
> grunt server
Running "connect:server" (connect) task
Waiting forever...
Started connect web server on http://:*.*.*.*:9100
4. 访问
访问地址 http://:*.*.*.*:9100/

显示集群未连接,修改地址为刚刚配置的地址:...:9200

以上内容中
*.*.*.*均为自己的ip地址
5. 安全问题(严重)
因为该插件可以对数据进行,增删改查。故生产环境尽量不要使用,如果要使用,最少要限制IP地址。尽量不要使用。
6. 小结
本文主要介绍了ElasticSearch Head的安装和配置,过程中主要遇到几个坑:
(1)PhantomJS not found on PATH 错误
拉下来head插件的源码进行npm install时会报错

错误日志往上看会看到类似日志:
PhantomJS not found on PATH
Download already available at /tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2
Verified checksum of previously downloaded file
Extracting tar contents (via spawned process)
实际是PhantomJS未安装成功引起,使用cnpm通过淘宝镜像安装成功。
(2)配置文件格式
Gruntfile.js和elasticsearch.yml配置文件注意格式,格式错误也会导致错误。Gruntfile.js注意,,elasticsearch.yml注意空格。
【Elasticsearch全文搜索引擎实战】之Head插件实践的更多相关文章
- 【Elasticsearch全文搜索引擎实战】之集群搭建及配置
文中Elasticsearch版本为6.0.1 1. 环境配置 把环境配置放在第一节来讲,是因为很多人按官网的Getting Started安装运行会有各种错误.其实都是因为一些配置不正确引起的. 首 ...
- 【Elasticsearch全文搜索引擎实战】之Kibana搭建
1. Kibana介绍 Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索.查看交互存储在Elasticsearch索引中的数据.使用Kibana,可以通过各种图表进行高 ...
- Elasticsearch全文搜索引擎-PHP使用教程。
1.声明依赖关系: 比方说,你的项目中需要一个php版的elasticsearch框架.为了将它添加到你的项目中(下载),你所需要做的就是创建一个 composer.json 文件,其 ...
- ElasticSearch全文搜索引擎
一.ElasticSearch简介 1.1 什么是ElasticSearch ElasticSearch简称ES,其中Elastic 从名字里我们可以知道,ES的特点就在于灵活的搜索,其实E ...
- net core 3.1使用ElasticSearch 全文搜索引擎
ElasticSearch 是一个开源的搜索引擎,建立在一个全文搜索引擎库 Apache Lucene 基础之上. Lucene 可以说是当下最先进.高性能.全功能的搜索引擎库,无论是开源还是私有. ...
- ElasticSearch全文搜索引擎(A)
文章:[Elasticsearch] 全文搜索 (一) - 基础概念和match查询 全文检索,是从最初的字符串匹配和简单的布尔逻辑检索技术,演进到能对超大文本.语音.图像.活动影像等非结构化数据进行 ...
- 全文搜索引擎Elasticsearch入门实践
全文搜索引擎Elasticsearch入门实践 感谢阮一峰的网络日志全文搜索引擎 Elasticsearch 入门教程 安装 首先需要依赖Java环境.Elasticsearch官网https://w ...
- 全文搜索引擎 Elasticsearch 入门:集群搭建
本文主要介绍什么是 ElasticSearch 以及为什么需要它,如何在本机安装部署 ElasticSearch 实例,同时会演示安装 ElasticSearch 插件,以及如何在本地部署多实例集群, ...
- Elasticsearch Head插件实践
简介 Elasticsearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java开发的,并作为Ap ...
随机推荐
- downLoad
String root= ServletActionContext.getServletContext().getRealPath(File.separator).replace("\\&q ...
- activeMq-2 高可用以及集群搭建
Activemq 的集群方法可以有多种实现方式,我们这里使用zookeeper来实现 要搭建集群,请确保已经搭建好zookeeper环境.这里不再演示. 基本原理: 使用ZooKeeper(集群)注册 ...
- mysql---select的五种子句学习(where、group by、having、order by、limit)
mysql---select的五种子句学习(where.group by.having.order by.limit) 分类: Mysql学习2012-09-27 16:14 1533人阅读 评论 ...
- C#部分试题实例
1.在C#中,下列选项中自定义方法的语句错误的是().(选择一项) 正确答案:AD 解析:本题考查自定义方法的定义及调用.A项void是无返回值类型,D项定义方法的时候没有写返回值类型:故选AD. 2 ...
- PHP-预定义函数访问数据库
(1)复习:自定义函数 (2)调用PHP预定义的函数——访问MySQL数据库 1.函数的基础概念 定义一个简单的函数: function 函数名( ){ #函数主体 } 调用/运行一次函数: ...
- 利用python监测linux上的服务(简单实现服务宕掉自动发送邮件)
python 这里用到了四个python 模块 : import time (时间模块) import re (正则模块) import socket (监测端口模块)import yagmail ( ...
- virtual和abstract的区别
virtual和abstract都是用来修饰父类的,前面不能用private私有,要不然就会出现编译错误:虚拟方法或抽象方法是不能私有的. 毕竟加上virtual或abstract就是让子类重新定义 ...
- Html5与Css3知识点拾遗(六)
web字号 px() 百分比(较常用) em(最常用):一般1em=16px,相对单位.以父元素作参照系,父元素大小是不确定的 body{ font-size:100%; /*父元素默认为16px*/ ...
- JavaScript高级程序设计--函数小记
执行环境和作用域链 每个函数都有自己的执行环境.当执行流进入一个函数时,函数 的环境就会被推入一个环境栈中.而在函数执行之后,栈将其环境弹出,把控制权返回给之前的执行环境. 当代码在一个环境中 ...
- Java 实现 Http 请求工具类
package com.demo.util; import java.io.BufferedReader; import java.io.IOException; import java.io.Inp ...