全文搜索属于最常见的需求,开源的 Elasticsearch
是目前全文搜索引擎的首选。
它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow
、Github
都采用它。
本文从零开始,讲解如何使用 Elasticsearch
搭建自己的全文搜索引擎。每一步都有详细的说明,大家跟着做就能学会。
Elastic
需要 Java 8
环境。如果你的机器还没安装 Java
必须先安装 Java
环境
假设我们的环境是 Ubuntu
sudo apt-get update
sudo apt-get install openjdk-8-jdk
安装完成后 还需要配置全局环境变量
java
的安装位置sudo update-alternatives --config java
/etc/environment
sudo nano /etc/environment
nano
是一个小型、免费、友好的编辑器,旨在取代非免费 Pine 包中的默认编辑器Pico。nano
不仅复制了 Pico 的外观,还实现了 Pico 中一些缺失(或默认禁用)的功能,例如“搜索和替换”和“转到行号和列号”。nano
是一个字符终端的文本编辑器,有点像 DOS 下的editor
程序。它比vi/vim
要简单得多,比较适合Linux
初学者使用。某些Linux
发行版的默认编辑器就是nano
,比如Ubuntu
系统默认安装了nano
。
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
就基本安装完毕了。
OK。安装与部署就先写到这里了。