ElasticSearch第一篇:ES简介,对比Solr,环境搭建以及可视化页面elasticsearch-head安装

:因为公司的日志采集系统有用到es+kafka,数据量庞大,所以在搞定kafka后继续研究es。

ElasticSearch概述:
    Elaticsearch,简称为es ,es是一个开源的高扩展分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好
可以扩展到上百台服务器,处理PB级别(大数据)的数据。es也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。

    es底层对Lucene封装。Lucene是一套信息检索工具包,引入jar即可使用,不包含搜索引擎系统。包含的:索引结果!读写索引的工具!排序功能,搜索规则,如过滤等等。。。。工具类。

应用场景(复制的):

1、维基百科,类似百度百科,全文检索,高亮,搜索推荐
2、国外新闻网站类似搜狐新闻,用户行为日志(点击,浏览,收藏,评论)+社交网络数据(对某某新闻的相关看法),数据分析,给到每篇新闻文章的作者,让他知道他的文章的公众反馈(好,坏,热门,垃圾,那视,崇拜)
3、Stack Overflow(国外的程序异常讨论论坛),IT问题,程序的报错,提交上去,有人会跟你讨论和回答,全文检索,搜索相关
问题和答案,程序报错了,就会将报错信息粘贴到里面去,搜索有没有对应的答案
4、GitHub(开源代码管理),搜索上千亿行代码
5、电商网站、检索商品
6、日志数据分析,logstash采集日志,ES进行复杂的数据分析,ELK技术.elasticsearch+logstash+kibana
7、商品价格监控网站,用户设定某商品的价格國值,当低于该阀值的时候,发送通知消息给用户,比如说订阅牙膏的监控,如果
高露洁牙膏的家庭套装低于50块钱,就通知我,我就去买
8、BI系统,商业智能,Business Intelligence,比如说有个大型商场集团,B1,分析一下某某区域最近3年的用户消费金额的趋势
以及用户群体的组成构成,产出相关的数张报表,**区,最近3年,每年消费金额呈现100%的增长,而且用户群体85%是高级白
领,开一个新商场。ES执行数据分析和挖掘,Kibana进行数据可视化
9、国内:站内搜索(电商、招聘、门户、等等)。IT系统搜索(OA.CRM.ERP 等等),数据分析(ES/A门的一个使用场興)

Es与Solr比较:
1.当单纯的对已有数据进行搜索时,Solr更快
2.当实时建立索引时,Solr会产生io阻塞,查询性能较差,Es具有明显优势
3.随着数据量的增加,Solr的搜索效率会变得更低,而Es却没有明显的变化

ElasticSearch vs Solr 总结:
1、es基本是开箱即用(解压就可以用!),非常简单。Solr安装略微复杂一丢丢!
2、Solr利用 Zookeeper 进行分布式管理,而 Elasticsearch 自身带有分布式协调管理功能.
3、Solr 支持更多格式的数据,比如JSON、XML、CSV,而Elasticsearch 仅支持json文件格式,
4、Solr 官方提供的功能更多,而 Elasticsearch本身更注重于核心功能,高级功能多有第三方插件提供,例如图形化界面需要
kibana友好支撑
5、Solr查询快,但更新索引时慢(即插入删除慢),用于电商等查询多的应用:
•ES建立索引快(即查询慢),即实时性查询快,用于facebook新浪等搜索,
。Solr 是传统搜索应用的有力解决方案,但 Elasticsearch 更适用于新兴的实时搜索应用。
6、Solr比较成熟,有一个更大,更成熟的用户、开发和贡献者社区,而 Elasticsearch相对开发维护者较少,更新太快,学习使用
成本较高。

Elasticsearch的安装(windows下),在linux下也差不多,解压,配置,启动:

1.当然是先去官网下载压缩包

2.解压(熟悉一下目录):

bin  启动文件
config 配置文件
  log4j2日志配置文件
  jvm.options  java虚拟机相关的配置
  elasticsearch.yml   es的配置文件,默认9200端口
lib 相关jar
logs 日志
modules 功能模块,可自己加入
plugins 插件,如ik分词器,放入此目录即可使用

3.在elasticsearch.yml加入跨域配置:

http.cors.enabled: true  

http.cors.allow-origin: "*"

4.启动:

运行elasticsearch.bat,可看到访问地址和通讯地址9200  9300

测试访问127.0.0.1:9200出现如下json

{
  "name" : "PC-201912111851",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "zgSN5gyfQLKp7DJdWJv-6Q",
  "version" : {
    "number" : "7.6.1",
    "build_flavor" : "default",
    "build_type" : "zip",
    "build_hash" : "aa751e09be0a5072e8570670309b1f12348f023b",
    "build_date" : "2020-02-29T00:15:25.529771Z",
    "build_snapshot" : false,
    "lucene_version" : "8.4.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

到这,elasticsearch就安装且启动成功了

elasticsearch-head插件的安装及测试:

1.在安装elasticsearch-head之前,我们需要安装node.js环境,下载地址http://nodejs.cn/download/,一直next即可。安装完后,命令切换到node的安装根目录,再安装grunt,  执行命令npm install -g grunt-cli。

2.上述操作顺利执行之后,再下载elasticsearch-head插件的压缩包,地址https://github.com/mobz/elasticsearch-head

3.解压压缩包

4.进行下述操作:

cd elasticsearch-head  进入安装目录
npm install 这里可用cnpm安装,淘宝镜像更快,若提示cnpm不是内部或外部命令,请先安装cnpm  命令npm install -g cnpm --registry=https://registry.npm.taobao.org
npm run start  
open http://localhost:9100/

5.启动成功后出现下述界面:

6.访问http://localhost:9100:

7.点击索引,创建一个索引,可看成一个数据库:

8.点击数据浏览,可浏览es集群中的索引库:

其中,score字段为权重,index为索引名,type为类型,相当于记录。后续会跟上说明,到此,ES入门第一篇结束!!!

猜你喜欢

转载自blog.csdn.net/weixin_46792649/article/details/106342779