文章目录
一:ElasticSearch简介
ElasticSearch:(solr与Lucene与其类似)
- 是一个基于Lucene的搜索服务器(ES)—数据库
- 专门为分布式环境设计
- 封装了luence的检索细节,只是走restfulapi。
- 近乎实时的存储、检索数据;本身扩展性很好
- 通过简单的RESTful API来隐藏Lucene的复杂性
- 文件内容搜索的数据库----反向检索
二:ElasticSearch优缺点:
优点:
在数据量较大的时候可以进行快速搜索,并且本身还带有分词器,可以对elasticSearch内的数据进行分词搜索。有利于数据管理。
缺点:
1.在需要添加新数据与新字段的时候,如果elasticSearch进行搜索是可能需要重新修改格式。之前的数据需要重新同步,对数据的管理有很多困难。
2.许多mysql可以搜索到的东西,在elasticSearch里就不能搜或很难搜
三:ElasticSearch用法
四:linux下的ElasticSearch安装及环境配置
第一步:首先我们需要安装3台虚拟机,以此模拟集群环境。
第二步:在3台虚拟机下都配置好jdk环境,jdk的安装和shell脚本安装我以前的文章有写过。
再次提供传送门—
https://blog.csdn.net/qq_35050438/article/details/106081902
https://blog.csdn.net/qq_35050438/article/details/106199592
第三步:我们下载好ElasticSearch6.2.2tar包后,将其放在/opt下解压后,将其在放在/soft/elasticsearch622/目录下
tar -zxvf elasticsearch6.2.2.tar.gz
mv elasticsearch6.2.2 /soft/elasticsearch622
第四步:修改配置文件config下的elasticsearch.yml文件
vi /opt/soft/elasticsearch622/config/elasticsearch.yml
- 集群名称
cluster.name: es-app #集群名称,可以自行修改
- 本机作为节点的名字
node.name: es-1 #节点名称,自行修改
- 主机地址和端口号
network.host: 192.168.235.133 #主机地址,这里写本机IP
http.port: 9200 #端口
- 跨域访问设置
http.cors.enabled: true #设置跨域
http.cors.allow-origin: "*" #设置访问
第五步:添加linux用户,并设置密码
useradd nicedays
passwd nicedays
# 然后设置新密码
第六步:此时就可以去启动elasticsearch了,但是往往会出错,第五步总结一下几处出错:
1. 系统最大文件数太低
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
- 解决办法:修改 vi /etc/security/limits.conf 文件末尾追加
用户名 soft nofile 65536
用户名 hard nofile 131072
用户名 soft nproc 4096
用户名 hard nproc 4096
2. 虚拟内存太低
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
- 解决办法:修改vi /etc/sysctl.conf文件末尾追加
vm.max_map_count=655360
保存退出后输入命令更新文件
sysctl -p
3.用户访问权限不够
java.nio.file.AccessDeniedException: …/elasticsearch-6.2.2/config/jvm.options
- 解决办法:因为我们是用普通用户登的,而elasticsearch是由root解压移动的,需要root将权限转给我们普通用户
chown 用户名 elasticsearch-6.2.2安装目录路径 -R
第七步:登录普通用户并定位到bin目录,运行elasticsearch
sudo 用户名
cd /opt/soft/elasticsearch622/bin
./elasticsearch
看到上图代表登陆成功,成功我们可以去浏览器输入虚拟机的ip:端口号,以此来访问