ES功能及特点
分布式搜索引擎
通过多台服务器进行存储检索,如:百度、谷歌、站内搜索
全文检索
提供模糊搜索等自动度较高的查询方式,进行相关排名,高亮等操作
数据分析引擎
各类电商、新闻类网站进行搜索排名,销量排名处理
海量数据实时处理
对海量数据实现秒级的数据搜索和分析
ES应用场景
常见场景
搜索类场景
比如电商、招聘、新闻资讯类网站及各类APP的搜索模块
日志分析类场景
经典的ELK组合(Elasticsearch/Logstash/Kibana),可以完成日志收集,日志存储,日志分析查询界面基本功能,目前该方案的实现很普及
数据预警平台及数据分析场景
例如电商价格预警,当优惠的价格低于某个值时,触发通知消息,通知用户购买。 数据分析常见的比如分析电商平台销售量 top10 的品牌,分析博客系统、头条网站 top10 关注度、 评论数、访问量的内容等。
商业BI系统
如大型零售超市,需要分析上一季度用户消费金额,年龄段,每天各时间段到店人数分布等信息,输出相应的报表数据,并预测下一季度的热卖商品,根据年龄段定向推荐适宜产品。 Elasticsearch执行数据分析和挖掘,Kibana做数据可视化。
常见案例
- 维基百科、百度百科:有全文检索、高亮、搜索推荐功能
- Stack Overflow:有全文检索,可以根据报错关键信息,去搜索解决方法。
- Github:从上千亿行代码中搜索你想要的关键代码和项目。
- 日志分析系统:各企业内部搭建的ELK平台。
主流搜索方案对比
目前主流全文搜索方案:Lucene、Solr、ElasticSearch,基于 **倒排索引 **机制实现快速全文搜索
- Lucene:完全由Java编写的信息搜索工具包,使用时需要我们进一步开发搜索系统,只是一个框架,需要在程序中集成后使用。
- Solr:是一个具有HTTP接口的查询服务器,基于Lucene,封装了Lucene的很多细节。
- ElasticSearch:也是建立在Lucene上实现的搜索引擎。采用分布式实时文件存储,将每个字段都编入索引,使其可以搜索。
联系与区别
Solr与ElasticSearch都是基于Lucene实现。
1)Solr使用Zookpper进行分布式管理,ElasticSearch自带分布式治理
2)Solr功能更多,ElasticSearch更注重核心功能,高级功能多由三方插件实现
3)Solr在传统搜索应用中好于ES,而在实时性上ES更加优秀
ES安装部署
在虚拟机上部署Single-Node Mode Elasticsearch
下载Elasticsearch
地址:https://www.elastic.co/cn/downloads/elasticsearch最新版本
下载:https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7.3..0版本
##解压文件
tar -zxvf elasticsearch-7.3.0-linux-x86_64.tar.gz
##移动文件到安装目录
mv /root/elasticsearch-7.3.0 /usr/elasticsearch/
1.编辑vim /usr/elasticsearch/config/elasticsearch.yml ,注意冒号后面有个空格。
vim /usr/elasticsearch/config/elasticsearch.yml
单机安装请取消注释:node.name: node-1,否则无法正常启动。
修改网络和端口,取消注释master节点,单机只保留一个node
node.name: node-1
network.host: 192.168.211.136
#
# Set a custom port for HTTP:
#
http.port: 9200
cluster.initial_master_nodes: ["node-1"]
2.按需修改vim /usr/elasticsearch/config/jvm.options内存设置
vim /usr/elasticsearch/config/jvm.options
根据实际情况修改占用内存,默认都是1G,单机1G内存,启动会占用700m+然后在安装kibana后,基本上无法运行了,运行了一会就挂了报内存不足。 内存设置超出物理内存,也会无法启动,启动报错。
-Xms1g
-Xmx1g
3.添加es用户,es默认root用户无法启动,需要改为其他用户
useradd estest
##修改密码
passwd estest
##改变es目录拥有者账号
chown -R estest /usr/elasticsearch/
4.修改/etc/sysctl.conf
vim /etc/sysctl.conf
##末尾添加:
vm.max_map_count=655360
##执行 sysctl -p 让其生效
sysctl -p
5.修改/etc/security/limits.conf
vim /etc/security/limits.conf
末尾添加:
* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096
6.启动es
切换刚刚新建的用户
su estest
启动命令
/usr/elasticsearch/bin/elasticsearch
7.配置完成:浏览器访问测试。 ip:9200
后续会持续更新,感兴趣的可以来个三联哦!
版权归原作者 李嘉图呀李嘉图 所有, 如有侵权,请联系我们删除。