人生起起伏伏,有风光无限日,也有落魄失魂时,人在低谷时,惟有“熬过去,才会赢”web
前言数据库
ElasticSearch在互联网行业的应用愈来愈普遍,尤为在大数据和搜索领域,随着版本的迭代,功能也日益强大,ElasticSearch的前身是Compass,创造于2004年,在Compass的第三个版本中,创造者Shay Banon对其大部分进行了重写,并于2010年2月发布了Elasticsearch的第一个版本。目前市面上对于ElasticSearch的资料仍是比较少,尤为是在一些场景下的结局方案,更是百里挑一。本系列内容重点在于了解ElasticSearch的使用场景,并从入门开始讲解,了解ElasticSearch的使用方式,和在一些场景下的解决方案。但愿能帮助更多的人了解ElasticSearch,学习ElasticSearch,能更好的利用ElasticSearch去解决实际场景的问题。这是做者第一次写文章,若是有不满意或者有错误,还但愿各位看官提出,做者会日渐努力去改善的。
api
ElasticSearch是一个基于Lucene库的搜索引擎,它提供了一个分布式多租户能力的全文搜索引擎,同时提供了HTTP Web接口和无模式JSON文档。ElasticSearch是使用JAVA语言开发的,客户端在主流的Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby等其余许多语言中都是可使用的。
elasticsearch
ES 的搜索引擎严重依赖于底层的 Filesystem Cache。若是Filesystem Cache能够分配到更多的内存,让内存足够去存放IDX Segment File 索引数据文件,那么数据基本就都是在内存中存放,全部的搜索都是直接在内存中查询,速度是很是快的。若是Filesystem Cache没有分配到足够的内存,数据不足以所有存放在内存中,剩下的数据就会保存在硬盘中,受限于硬盘的读写速度,那么性能便会大打折扣。编辑器
ElasticSearch是一个近实时搜索引擎,为何说是近实时?首先,咱们须要知道一个索引(index),是由多个段(segment)组成的,新增的document会优先写入到indexing buffer区中,而后被重写成一个segment,以后再被写入到Filesystem Cache,数据被写入到Filesystem Cache中后,其实就已经能够被打开了,但实际上,Filesystem Cache中要打开一个新的segment须要一个refresh操做,这个操做在es中默认是1秒钟,这也是咱们为何说es是个近实时搜索引擎的缘由。另外,数据写入到了Filesystem Cache中并非已经结束了,数据还要进行持久化操做,在数据被写入到Filesystem Cache中后,通过一段时间或者外部触发,数据会执行fsync操做,对数据进行full commit写入到硬盘中。分布式
相似于Google搜索,百度搜索和维基百科等,对全文关键字进行检索。es中提供了full-text search的查询方式,能够在在全文字段中搜索到最相关的文档。例如博客,就是对全文检索,检索到文章相应的关键字,展示给用户该文章的连接。性能
经过收集用户的行为日志,分析并创建用户模型,保存在es中,并利用es强大的深刻搜索和聚合的能力,能够更好的分析和展现用户的行为数据。例如推荐系统,就是利用用户模型的用户数据,对用户数据交叉查询,分析出用户细粒度的喜爱。学习
利用es高性能查询的特性,收集系统的监控数据,近实时展示监控数据,同时也方便用户对监控数据进行关键字排查。大数据
经常使用的方案是ELK(elasticsearch+logstash+kibana),利用logstash去收集logback的日志信息,再经过es作存储,最后能够再kibana去利用es api查看和分析日志的相关信息。flex
PART
01
能够搭建大型集群,去处理PB级数据,服务于大型企业,同时也能够单机部署,服务于小型企业
PART
02
集合了lucene的全文检索的特色,但又具备支持分布式技术,同时具备分析的能力,加上自身提供存储功能,部署简单,达到了真正开箱即用的便捷。
PART
03
拥有传统数据库的存储能力,又在其基础上加强了查询能力,并提供各类分析,检索的能力,能够处理海量数据,提供了不少数据库所没法提供的功能
这期目前就先写到这了,这是我第一次写技术文章,文笔也可能不是很好,中间若是有问题或者出错的地方,你们能够提出来,若是有幸你看到这篇文章,但愿能点个赞,在此,感谢各位支持和点赞,谢谢!