ElasticSearch概述

HeJin大约 4 分钟数据库技术ElasticSearch

什么是ElasticSearch

Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。ElasticSearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。

Elasticsearch是与名为Logstash的数据收集和日志解析引擎以及名为Kibana的分析和可视化平台一起开发的。这三个产品被设计成一个集成解决方案,称为“Elastic Stack”(以前称为“ELK stack”)。

官网:https://www.elastic.co/cn/what-is/elk-stackopen in new window

image-20210320210340914
image-20210320210340914

历史和发展

许多年前,一个叫Shay Banon的待业工程师跟随他的新婚妻子来到伦敦,他的妻子想在伦敦学习做一名厨师。而他在伦敦寻找工作的期间,接触到了Lucene的早期版本,他想为自己的妻子开发一个方便搜索菜谱的应用。

直接使用Lucene构建搜索会有很多的坑以及重复性的工作,所以Shay便在Lucene的基础上不断进行抽象来让Java程序嵌入搜索变得更容易一些。经过一段时间的打磨,就诞生了他的第一个开源作品。他给自己的这个作品起了个名字,叫 “Compass”,中文即指南针的意思。

之后,Shay找到了一份新工作,新工作是处在一个高性能分布式的开发环境中。他在工作中渐渐发现,越来越需要一个易用的高性能、实时、分布式搜索服务。于是他决定重写Compass,将它从一个库打造成了一个独立的server,并将其改名为Elasticsearch。

Elasticsearch发布的第一个版本是在2010年的二月份,从那之后,Elasticsearch便成了Github上最受人瞩目的项目之一,并且很快就有超过300名开发者加入进来贡献了自己的代码。后来Shay和另一位合伙人成立了公司专注打造Elasticsearch,他们对Elasticsearch进行了一些商业化的包装和支持。但是,Elasticsearch承诺,永远都将是开源并且免费的。

不过悲剧的是,Shay承诺为妻子开发的菜谱搜索应用,到现在还没做出来……

谁在使用

1、维基百科,类似百度百科,全文检索、高亮、搜索推荐。

2、 The Guardian(国外新闻网站)、类似搜狐新闻,用户行为日志(点击、浏览、收藏、评论)+社交网络数据(对某某新闻的相 关看法)。数据分析,给到毎篇新闻文章的作者,让他知道他的文章的公众反馈(好、坏、热门、垃圾、鄙视、崇拜)。

3、 Stack Overflow(国外的程序讨论论坛)。IT问题、程序的报错、提交上去、有人会跟你讨论和回答、全文检索、搜索相关 问题和答案。程序报错了就会将报错信息粘贴到里面去,搜索有没有对应的答案。

4、 GitHub(开源代码管理),搜索上干亿行代码。

5、电商网站,检索商品。

6、日志数据分析,logstash采集日志,ES进行复杂的数据分析。ELK技术:elasticsearch+ logstash+ kibana。

7、商品价格监控网站。用户设定某商品的价格阈值,当低于该阈值的时候,发送通知消息给用户。比如说订阅牙膏的监控,如果 高露洁牙膏的家庭套装低于50块钱,就通知我,我就去买。

8、BI系统,商业智能,Business Intelligence。比如说有个大型商场集团,BI,分析一下某某区域最近3年的用户消费金额的趋势 以及用户群体的组成构成,产出相关的数张报表。**区、最近3年、每年消费金额呈现100%的增长,而且用户群体85%是高级白 领,开一个新商场。ES执行数据分析和挖掘,Kiana进行数据可视化。

9、国内:站内搜索(电商、招聘、门户等等),IT系统搜索(OA、CRM、ERP等等)、数据分析(ES热门的一个使用场景)。