近有在做搜索的应用,接触到开源的搜索引擎Elasticsearch,由于业务的需要,花了一个月的时间学了一下ES的相关知识。这系列的文章主要总结自己学习的笔记以及踩过的坑,内容会根据自己所学随时更新。
一、全文搜索引擎简介
目前开源的全文搜素引擎有:
Solr: Apache公司维护,许多一线的互联网公司都有用
Elasticsearch:新兴的开源搜索引擎,潜力巨大。使用JSON作为数据模型
其他的开源搜索引擎还有Xunsearch, Zebra,Nutch等。
二、ES的部署
2.1集群服务器部署ES
(待完善)
a) 部署负载均衡SLB
b) 初始化ES节点机器
c) 部署JDK,并添加JAVA环境
d) 不是Kibana到Master结点机器上
2.2 本地windows系统部署ES
a) 下载ES, 地址为:
Download Elasticsearch可以past release中选择历史发行版本
b) 运行ES目录/bin下的 elasticsearch.bat可以开启本地服务,浏览器访问:http://localhost:9200可以查看ES运行情况
c) 下载Kibana 地址为:
https://www.elastic.co/cn/downloads/kibanaKibana是管理ES的可视化工具,下载的文件解压完成后运行主目录/bin/kibana.bat可以开启,浏览器访问:http://localhost:5601 可以查看kibana运行情况
d) 安装中文分词插件ik, 地址为:
medcl/elasticsearch-analysis-ik选择与ES相同的版本,并解压到ES目录/plugin下,后把文件名重新命名为ik
2.3 云服务器Ubuntu系统部署ES
a) 下载ES
b) 下载ik插件并解压到主目录\plugin下
c) 为了可以远程访问ES服务器,需要修改ES目录\config\elasticsearch.yml文件,在network的注释下,添加一下内容
network.host:0.0.0.0
bootstrap.memory_lock:false
bootstrap.system_call_filter:false
如果报以下错误
ERROR: [2] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
则需要添加权限, 编辑/etc/security/limits.conf文件,追加以下内容
* soft nofile 65536
* hard nofile 65536
接着编辑 /etc/sysctl.conf 追加
vm.max_map_count=655360
后执行
sysctl -p
如果是在本地ubuntu中部署,还需要额外多余的一部,要为es的用户赋予管理员权限,如我本地的用户名是cui,启动es需要
su cui
bash bin/elasticsearch