ElasticSearch 安装
ElasticSearch 是一款优秀的全文搜索引擎,这个已经不用多说了。
一、ElasticSearch 下载并安装
提示:不要安装最新版,先看看目前一些重要插件支持到了哪个版本,例如,我要用到一个叫 IK 的插件,目前最高支持到 6.1.1 ,所以,我重新装了 6.0.0 的 ElasticSearch 和 Kibana
这个是 ElasticSearch 的官方安装教程https://www.elastic.co/downloads/elasticsearch 翻译过来就是:
1、 Java 环境
安装 ElasticSearch 要 Java 环境,建议安装 Java 8 以下(其实是我们的 Solr 在 Java 9 下亲测不可用)
2、解压
我是下载 ZIP 的,将 Zip 文件解压,并且移动到我固定放这一类软件的目录(个人习惯放在 ~/webs/tools/ 下)
3、建立软链接
按照官方说法,我们每次在 ElasticSearch 的文件夹下运行
$ bin/elasticsearch
就可以运行了,但是,我们为了方(耍)便(酷)启动 ElasticSearch ,我们可以建立快捷方式
$ sudo ln -s /Users/don/webs/tools/elasticsearch-6.0.0/bin/elasticsearch /usr/local/bin/elasticsearch
$ sudo ln -s /Users/don/webs/tools/elasticsearch-6.0.0/bin/elasticsearch-env /usr/local/bin/elasticsearch-env
这样子我们就可以像这样启动 ElasticSearch
elasticsearch
看到
...
[2018-02-09T11:27:54,461][INFO ][o.e.n.Node ] initialized
[2018-02-09T11:27:54,461][INFO ][o.e.n.Node ] [PFVD20J] starting ...
[2018-02-09T11:27:54,664][INFO ][o.e.t.TransportService ] [PFVD20J] publish_address {127.0.0.1:9300}, bound_addresses {[fe80::1]:9300}, {[::1]:9300}, {127.0.0.1:9300}
...
类似信息,那我们就成功安装并启动 ElasticSearch 了,很方便
二、Kibana 下载并安装
为什么要装 Kibana ?可以方(偷)便(懒)管理 ElasticSearch 呀~ 这个是官方安装教程https://www.elastic.co/cn/downloads/kibana 同样简单翻译一下:
1、 ElasticSearch 环境
先把第一步中的 ElasticSearch 环境部署好
2、 配置 ElasticSearch URL
如果需要修改 ElasticSearch 的 URL ,编辑 config/kibana.yml 中的 elasticsearch.url 属性,默认都是
# The URL of the Elasticsearch instance to use for all your queries.
#elasticsearch.url: "http://localhost:9200"
3、建立软链接
理由同上
$ sudo ln -s /Users/don/webs/tools/kibana-6.0.0-darwin-x86_64/bin/kibana /usr/local/bin/kibana
然后我们愉快地启动
$ kibana
log [03:31:13.769] [info][status][plugin:kibana@6.0.0] Status changed from uninitialized to green - Ready
log [03:31:13.814] [info][status][plugin:elasticsearch@6.0.0] Status changed from uninitialized to yellow - Waiting for Elasticsearch
log [03:31:13.841] [info][status][plugin:console@6.0.0] Status changed from uninitialized to green - Ready
log [03:31:13.860] [info][status][plugin:metrics@6.0.0] Status changed from uninitialized to green - Ready
log [03:31:14.083] [info][status][plugin:timelion@6.0.0] Status changed from uninitialized to green - Ready
log [03:31:14.087] [info][listening] Server running at http://localhost:5601
log [03:31:14.088] [info][status][ui settings] Status changed from uninitialized to yellow - Elasticsearch plugin is yellow
log [03:31:19.137] [info][status][plugin:elasticsearch@6.0.0] Status changed from yellow to yellow - No existing Kibana index found
log [03:31:20.399] [info][status][plugin:elasticsearch@6.0.0] Status changed from yellow to green - Kibana index ready
log [03:31:20.401] [info][status][ui settings] Status changed from yellow to green - Ready
成功,打开浏览器,输入 http://localhost:5601 看到这个页面,证明 kibana 跑起来了

但是,我们哪里忍得住,马上试一下操作 ES ,点击 Dev Tools ,输入如下命令并运行
PUT /rcc/employee/1
{
"first_name" : "Don",
"last_name" : "Yang",
"age" : 25,
"about" : "I love to Coding",
"interests": [ "write code", "write bug" ]
}
至此,证明我们的 Kibana 和 ElasticSearch 安装都是没有问题的。 顺便一提,重新安装的时候发现,有文档说过, ES 7 计划移除 type 这个东西。

三、安装中文分词插件
ES 是外国人写的呀,要搞中文的东西,原生的不能很好地支持,那么我们先装个中文分词插件吧,顺便,其他 ES 插件的安装也是差不多的。 在这里,我以安装 IK 为例, IK 的官方 Github 有详细说明: medcl/elasticsearch-analysis-ik
1、原生分词效果
那我们就先来看看 ES 原生对中文分词的效果先
GET _analyze
{
"analyzer" : "standard",
"text" : ["公安部:各地校车将享最高路权",
"中国驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首",
"美国留给伊拉克的是个烂摊子吗",
"中韩渔警冲突调查:韩警平均每天扣1艘中国渔船"]
}
我们来看看,惨不忍睹,直接按照一个字一个字地分词

2、 安装 IK
在 ElasticSearch 的目录中,运行以下命令安装插件:
$ ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.0.0/elasticsearch-analysis-ik-6.0.0.zip
运行完以后,重启 elasticsearch
3、使用 IK 的分词效果
直接上图,效果明显不同。而且, Ik 还可以自己配置词典,具体看文档说明。顺便一说,做分词经常会用新闻来练手起步,因为写新闻的记者文字功底比较好,而且,容易获取大量训练集。

四、还有一点点
ES 和 Kibana 都跑起来了,还有什么呢?好吧,强迫症让我并不喜欢像 http://localhost:5601 访问 Kibana ,我们得给它起个名字是吧。
1、 host
在 host 文件中增加一行
# local
...
127.0.0.1 kibana.local.com
2、 nginx
增加一个 nginx 配置文件 kibana.conf
upstream kibana {
server 127.0.0.1:5601;
}
server {
listen 80;
server_name kibana.local.com;
location / {
proxy_pass http://kibana/;
}
}
顺便一说,我觉得重启 nginx 之前,都先跑一下 nginx -t 是很有必要的一步。
3、访问
这次,我们直接访问 http://kibana.local.com/app/kibana#/dev_tools/console?_g=() 就可以愉快地使用 ES 了。

哎呀,电脑卡机了。。。 所以,这两个东西还是有点吃电脑性能的,平时我一般都是需要的时候才开,不用的时候,果断关掉它。