作者:FloatingGuy 转载请注明出处:https://floatingguy.github.io/


Elasticsearch 是一个基于 Apache Lucene(TM的开源搜索引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。并通过简单的 RESTful API 来隐藏 Lucene 的复杂性,从而让全文搜索变得简单。
Elasticsearch 不仅仅是 Lucene 和全文搜索,我们还能这样去描述它:

  • 分布式的实时文件存储,每个字段都被索引并可被搜索
  • 分布式的实时分析搜索引擎
  • 可以扩展到上百台服务器,处理PB级结构化或非结构化数据

安装 Elasticsearch

注意:安装版本 5.3,需要 JDK 1.8 以上。

1. 安装包安装 Elasticsearch

1
2
3
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.3.0.tar.gz
tar -xzf elasticsearch-5.3.0.tar.gz
cd elasticsearch-5.3.0/

2. 配置文件

在启动运行前,我们介绍下 Elasticsearch 配置文件,即 config/elasticsearch.yml。这里我们需要在配置中增加以下配置,为了允许 elasticsearch-head 运行时的跨域:

1
2
3
4
5
6
7
8
9
10
11
12
# allow origin
cluster.name: my-application
node.name: node-1
bootstrap.memory_lock: false
network.host: localhost #在本地使用
http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.168.0.1", "127.0.0.1"]
discovery.zen.minimum_master_nodes: 1
bootstrap.system_call_filter: false
http.cors.enabled: true
http.cors.allow-origin: "*"
(其他具体配置见官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/settings.html )

3. 运行

一般在后台以守护线程启动 Elasticsearch,在命令行加入 -d 指定。自然,也可以加入 -p ,可将进程 ID 记录到文件中。

./bin/elasticsearch -d

访问 localhost:9200 ,可以看到成功运行的案例,返回的 JSON 页面。如图:

要关闭 Elasticsearch 进程,需要通过 ps 找到对应的 pid,在 kill pid 即可。

1
2
ps aux |grep elasticsearch
kill -7 pid

可视化插件 elasticsearch-head 安装

官方 GitHub 地址安装也很简单,按照 README 步骤走就好了。
下载 master 分支项目,然后在项目当前目录通过 npm 安装,再通过 npm 运行启动该项目即可。

1
2
3
4
git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
npm run start

访问 http://localhost:9100/ ,右上角表示连接上了上小节启动的 Elasticsearch。如图

Docker Elasticsearch

https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html

1
2
docker pull docker.elastic.co/elasticsearch/elasticsearch:5.6.4
docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:5.6.4