全文搜索屬於最多見的需求,開源的 Elasticsearch 是目前全文搜索引擎的首選,它的底層是開源庫 Lucene。可是咱們無法直接使用 Lucene,必須本身寫代碼去調用它的接口。node
Elasticsearch 是 Lucene 的封裝,提供了 REST API 的操做接口,很是方便。vim
Elasticsearch 須要 Java 8 的環境。瀏覽器
若是還沒安裝,請參考:app
http://blog.csdn.net/justdoit_potato/article/details/77962670elasticsearch
1. 下載壓縮包tcp
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.0.1.zip
2. 解壓測試
unzip elasticsearch-6.0.1.zip
3. 啓動搜索引擎
./elasticsearch-6.0.1/bin/elasticsearch
啓動時可能報錯:不容許 root 用戶運行spa
解決辦法:.net
1. 建立新用戶
adduser [user]
2. 給新用戶賦予權限
chown -R [user] [elasticsearch安裝目錄]
3. 切換到新用戶
su [user]
完成。
默認狀況下,elasticsearch 只容許本機訪問,若是需遠程訪問。
1. 打開配置文件
vim elasticsearch-6.0.1/config/elasticsearch.yml
2. 將 network.host 配置去掉註釋,值改成 0.0.0.0(建議改成具體的客戶端IP)
network.host: 0.0.0.0
3. 改完後可能會沒法啓動,報錯:
解決辦法:
1. sysctl.conf 配置文件
vi /etc/sysctl.conf
增長或修改配置
fs.file-max=655350 vm.max_map_count=655360
保存後設置生效
// 使生效 sysctl -p
2. limits.conf 配置文件
vim /etc/security/limits.conf
增長配置
* soft nofile 655350 * hard nofile 655350
4. 修改防火牆
firewall-cmd --zone=public --add-port=9200/tcp --permanent firewall-cmd --reload
5. 從新登陸 SSH,再次嘗試啓動 elasticsearch。
切換到非 root 用戶。
啓動:
./elasticsearch-6.0.1/bin/elasticsearch
或 守護線程啓動:
./elasticsearch-6.0.1/bin/elasticsearch -d
6. 測試
瀏覽器打開:http://ip:9200/
輸出:
1. 在本機上建立第二個實例:
切換到非 root 用戶,在 elasticsearch 目錄下建立 data1 文件夾後,執行命令:
./bin/elasticsearch -Ehttp.port=8200 -Epath.data=/.../elasticsearch-6.0.1/data1
這條命令會覆蓋配置文件中的參數。
2. 查看是否啓動成功
瀏覽器訪問:http://ip:8200
若是正確輸出配置信息,表示啓動成功。
3. 如何查看新建立的節點是否加入集羣
瀏覽器訪問:http://ip:8200/_cat/nodes?v
能夠看到,出現兩條節點信息。
master 的 * 號表示當前節點信息表示主實例。
// 查看當前節點的全部Index _cat/indices // 查看當前Index的全部Type _mapping?pretty=true // 新建Index PUT weather // 刪除Index DELETE weather