ElasticSearch 安装

ElasticSearch 是一款优秀的全文搜索引擎,这个已经不用多说了。

一、ElasticSearch 下载并安装

提示:不要安装最新版,先看看目前一些重要插件支持到了哪个版本,例如,我要用到一个叫 IK 的插件,目前最高支持到 6.1.1 ,所以,我重新装了 6.0.0 的 ElasticSearch 和 Kibana

这个是 ElasticSearch 的官方安装教程https://www.elastic.co/downloads/elasticsearchopen in new window 翻译过来就是:

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/kibanaopen in new window 同样简单翻译一下:

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 跑起来了

Kibana 主界面.png

但是,我们哪里忍得住,马上试一下操作 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" ]
}

添加一个文档.png 至此,证明我们的 Kibana 和 ElasticSearch 安装都是没有问题的。 顺便一提,重新安装的时候发现,有文档说过, ES 7 计划移除 type 这个东西。

图片.png

三、安装中文分词插件

ES 是外国人写的呀,要搞中文的东西,原生的不能很好地支持,那么我们先装个中文分词插件吧,顺便,其他 ES 插件的安装也是差不多的。 在这里,我以安装 IK 为例, IK 的官方 Github 有详细说明: medcl/elasticsearch-analysis-ikopen in new window

1、原生分词效果

那我们就先来看看 ES 原生对中文分词的效果先

GET _analyze
{
  "analyzer" : "standard",
  "text" : ["公安部:各地校车将享最高路权",     
  "中国驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首",
  "美国留给伊拉克的是个烂摊子吗",
  "中韩渔警冲突调查:韩警平均每天扣1艘中国渔船"]
}

我们来看看,惨不忍睹,直接按照一个字一个字地分词

默认分词结果.png

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 还可以自己配置词典,具体看文档说明。顺便一说,做分词经常会用新闻来练手起步,因为写新闻的记者文字功底比较好,而且,容易获取大量训练集。

IK 分词结果.png

四、还有一点点

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 了。

添加 host 访问.png

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