Elasticsearch 是一个分布式的搜索和分析引擎,可以用于全文检索、结构化检索和分析,并能将这三者结合起来。Elasticsearch 基于 Lucene 开发,是 Lucene 的封装,提供了 REST API 的操作接口,开箱即用。现在是使用最广的开源搜索引擎之一,Wikipedia、Stack Overflow、GitHub 等都基于 Elasticsearch 来构建他们的搜索引擎。

安装 Oracle JDK(elasticsearch7以后自带jdk不在需要安装)

# ubuntu
sudo apt-get update
sudo apt-get install openjdk-8-jdk

# centos
sudo yum update
sudo yum install java-1.8.0-openjdk* -y

安装 Elasticsearch

下载

首先选择好需要的版本 现在最新的版本为6.5.4 但是因为我们需要安装一个中文分词的插件elasticsearch-analysis-ik 目前兼容版本为6.5.0所以我们选择6.5.0版本

# ubuntu
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.0.deb

# centos
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.0.rpm

安装

# ubuntu
sudo dpkg -i elasticsearch-6.5.0.deb

# centos
sudo rpm --install elasticsearch-6.5.0.rpm
开机自启动
# ubuntu
sudo update-rc.d elasticsearch defaults 95 10

# centos
systemctl enable elasticsearch.service

启动

# ubuntu
sudo service elasticsearch start

# centos
sudo -i service elasticsearch start

测试

curl http://localhost:9200

你如果你看到以下信息,说明你的ElasticSearch已安装成功。

{
	"name" : "PqFpvI9",
	"cluster_name" : "elasticsearch",
	"cluster_uuid" : "unjaiIZcScqr0F7uAbPyvg",
	"version" : {
    	"number" : "6.5.0",
    	"build_flavor" : "default",
    	"build_type" : "deb",
    	"build_hash" : "816e6f6",
    	"build_date" : "2018-11-09T18:58:36.352602Z",
    	"build_snapshot" : false,
    	"lucene_version" : "7.5.0",
    	"minimum_wire_compatibility_version" : "5.6.0",
    	"minimum_index_compatibility_version" : "5.0.0"
  	},
	"tagline" : "You Know, for Search"
}

注意: elasticsearch启动需要时间 如果请求发现未看到,等待10-20秒再次请求查看,如果还是未启动,请查看elasticsearch日志

其他

查看elasticsearch日志
cat /var/log/elasticsearch/elasticsearch.log
配置elasticsearch

默认情况下 Elasticsearch 的 RESTful 服务只有本机才能访问 为了方便调试 可以修改/etc/elasticsearch/elasticsearch.yml文件修改监听端口

# 修改为0.0.0.0 并且取消注释
network.host: 0.0.0.0

安装中文分词插件 IK

Elasticsearch原装分词器会简单地拆分每个汉字,没有根据词库来分词,这样的后果就是搜索结果很可能不是你想要的。这里推荐使用elasticsearch-analysis-ik,支持自定义词库。

下载

wget https://github.com/medcl/elasticsearch-analysis-ik/archive/v6.5.0.tar.gz

解压

tar -xvf elasticsearch-analysis-ik.tar.gz

使用maven打包该java项目

需要用到 maven 如果没有 可以用 apt-get install maven

cd elasticsearch-analysis-ik-6.5.0
mvn package

在plugins目录下创建ik目录,并将打包好的IK插件解压到其中

sudo mkdir /usr/share/elasticsearch/plugins/analysis-ik
sudo unzip target/releases/elasticsearch-analysis-ik-6.5.0.zip -d /usr/share/elasticsearch/plugins/analysis-ik/

elasticsearch-analysis-ik 的配置文件在 ~/{es_root}/plugins/ik/config/ 目录,很多都是词表,直接用文本编辑器打开就可以修改,改完记得保存为 utf-8 格式。

现在再启动 Elasticsearch 服务,如果在日志中看到类似下面这样的信息,说明 analysis IK 插件已经装好了

loaded plugin [analysis-ik]

或者 你可以查看下Elasticsearch 的插件列表

sudo /usr/share/elasticsearch/bin/elasticsearch-plugin list

参考资料: