全文搜索属于最常见的需求,开源的 Elasticsearch
是目前全文搜索引擎的首选。
它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都采用它。
本文从零开始,讲解如何使用 Elasticsearch
搭建自己的全文搜索引擎。每一步都有详细的说明,大家跟着做就能学会。
一、安装前虚准备的
Elastic 需要 Java 8 环境。如果你的机器还没安装 Java 必须先安装Java环境
sudo apt-get update
sudo apt-get install openjdk-8-jdk
安装完成后 还需要配置全局环境变量
- 可以通过命令查看java的安装位置
$ sudo update-alternatives --config java
- 复制首选安装的路径,然后打开
/etc/environment
$ sudo nano /etc/environment
- 在此文件中,添加以下行,确保使用您自己的复制路径替换突出显示的路径。
JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"
- 保存并退出该文件,然后重新加载它。
$ source /etc/environment
- 现在可以通过执行以下命令来测试环境变量是否已设置:
$ echo $JAVA_HOME
这将返回您刚刚设置的路径。
Java
安装现在告一个段落;下面进入安装Elasticsearch
二、安装Elasticsearch
这里我们以deb
包安装方式来安装(这种包支持root
账户,其他包由于服务器安全禁止使用root
账户安装)
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.3.deb
dpkg -i elasticsearch-6.2.3.deb
开机自启动
sudo update-rc.d elasticsearch defaults 95 10
sudo service elasticsearch start
#重启/关闭
service elasticsearch restart/stop
如果一切正常,Elasticsearch
就会在默认的9200
端口运行。这时,打开另一个命令行窗口,请求该端口,会得到说明信息。
curl http://localhost:9200
进入/etc/elasticsearch/config/elasticsearch.yml
文件,允许所有访问
network.bind_host: "0.0.0.0"
curl http://IP地址:9200

上面代码中,请求9200
端口,Elasticsearch
返回一个 JSON
对象,包含当前节点、集群、版本等信息。
三、安装中文分词插件
安装中文分词插件。这里使用的是 ik
,也可以考虑其他插件(比如 smartcn)注意 elasticsearch
版本要与插件版本对应。
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.2.3/elasticsearch-analysis-ik-6.2.3.zip


上面代码安装的是5.5.1版的插件,与 Elastic 5.5.1 配合使用。
接着,重新启动 Elastic,就会自动加载这个新安装的插件。
现在 Elasticsearch
就基本安装完毕了