Elasticsearch:为了搜索,你懂的(For Search, You Know)

Elasticsearch模糊的历史

多年前,一个叫做Shay Banon的刚结婚不久的失业开发者,由于妻子要去伦敦学习厨师,他便跟着也去了。在他找工作的过程中,为了给妻子构建一个食谱的搜索引擎,他开始使用Lucene进行尝试。
直接基于Lucene工作会比较困难,所以Shay开始抽象Lucene代码以便Java程序员可以在应用中添加搜索功能。他发布了他的第一个开源项目,叫做“Compass”。
后来Shay找到一份工作,这份工作处在高性能和内存数据网格的分布式环境中,因此高性能的、实时的、分布式的搜索引擎也是理所当然需要的。
然后他决定重写Compass库使其成为一个独立的服务叫做Elasticsearch
第一个公开版本出现在2010年2月,在那之后Elasticsearch已经成为Github上最受欢迎的项目之一,代码贡献者超过300人。一家主营Elasticsearch的公司就此成立,他们一边提供商业支持一边开发新功能,不过Elasticsearch将永远开源且对所有人可用。
Shay的妻子依旧等待着她的食谱搜索……

为了搜索,你懂的(For Search, You Know)

无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。但是,Lucene只是一个库。想要使用它,你必须使用Java来作为开发语言并将其直接集成到你的应用中,更糟糕的是,Lucene非常复杂,你需要深入了解检索的相关知识来理解它是如何工作的。

ElasticSearch是一个基于Apache Lucene内核、使用Java开发、用于实现索引和搜索的功能的开源搜索引擎,通过标准的RESTful API覆盖Lucene的复杂性,以期全文检索技术能简单易用地被各种搜索应用所使用。

Elasticsearch的特性

(1)毫秒级近实时检索
所有数据无需等待,进入集群即可被检索和分析。
(2)高可靠性
通过冗余、分片机制,将集群任意一个节点上的请求路由到相应数据所在的节点,无论是增加节点还是移除节点,分片都可以做到无缝的扩展和迁移。
(3)PB级扩展
小集群起步和强大的横向扩展性,支持成百上千节点和PB级别的数据量。可扩展到上百台服务器,处理PB级别结构化或非结构化数据。
(4)丰富易用的接口支持
提供Developer-Friendly, RESTful API友好强大的REST API,任何语言编写的HTTP客户端,都可以通过REST API来操作ElasticSearch。
(5)强大的技术协议栈
ELBK的技术协议栈已经风靡到了海量数据处理分析的各个方面,尤其在海量日志数据分析方面独树一帜,成为了各大互联网公司的首选。
(6)开源
作为创业者、学习者、商业公司,还有比开源更令人开心的事吗?

应用案例

  • 维基百科用ES来进行全文搜索并高亮显示关键词,提供search-as-you-type、did-you-mean等搜索建议功能。
  • 纽约时报使用ES对164年跨度的发表文章提供检索。
  • 英国卫报用ES来处理访客日志,以便能将公众对不同文章的反应实时地反馈给各位编辑。
  • StackOverflow将全文搜索与地理位置和相关信息进行结合,以提供more-like-this相关问题的展现。
  • GitHub使用ES来检索超过1300亿行代码。
  • Goldman Sachs使用ES来处理5TB数据的索引,投资银行使用ES分析股票市场的变动。
  • Docker的容器搜索服务也用ES编写。

国内大数据厂商对Elasticsearch的支持

百度数智平台Elasticsearch

百度Elasticsearch是开源的全文检索和分析引擎Elasticsearch的托管服务,提供自动运维和调优,减少客户自行管理基础设施的开销,并完全兼容开源接口,便于您现有业务零成本迁移。
Elasticsearch:为了搜索,你懂的(For Search, You Know)_第1张图片

  • 产品功能:
    (1)强大的分析能力:Elasticsearch 是日志分析、应用程序监控和点击流分析等场景使用的常见分析引擎。
    (2)简单易用:提供HTTP RESTful接口,可以通过任意的HTTP客户端访问集群,兼容性优良,易用性高。
    (3)高可用:数据、元数据多副本存储,宕机期间不影响查询服务,机器故障副本自动迁移。
    (4)超高性能:百度大数据专家团队,基于内部应用经验,深度优化集群性能,在业内保持性能领先地位。
  • 应用场景
    (1)文本检索
    文本检索助力企业快速简便地实现对于非结构化数据的搜索功能。在大数据时代,百度提供了云端的文本检索解决方案,为企业搭建文本检索系统提供指南。
    应用案例:百度网盟
    每日超过130亿次的展现,服务于数十万广告主。基于Elasticsearch搭建的DMP平台,让广告主更好的定义精准受众,协助广告主制定投放策略,提升营销效果。
    (2)日志分析
    提供日志分析托管服务,省去开发、部署以及运维的成本,便于客户聚焦在如何利用日志分析结果做出更好的决策,从而快速实现商业目标。
    应用案例:百度云安全
    百度云分析是基于弹性云的PB级规模的大数据分析平台,提供收集、管理和分析网站、系统日志的数据服务。通过使用Elasticsearch将数千万行日志数据实时转化为可视化的IT运行及安全状况,让管理员更容易整合信息,分析出有价值的安全事件。

阿里云Elasticsearch

提供基于开源Elasticsearch及商业版X-Pack插件,致力于数据分析、数据搜索等场景服务。在开源Elasticsearch基础上提供企业级权限管控、安全监控告警、自动报表生成等功能。
Elasticsearch:为了搜索,你懂的(For Search, You Know)_第2张图片

  • 应用场景
    (1)日志/指标分析:访问日志、行为日志统计分析,快速获取指标数据,并提供给相关业务人员对应指标
    特点:
    a.系统运维日志异常分析
    运维人员可以针对服务器日志进行异常信息快速定位
    b.行为日志分析
    基于用户行为日志,分析用户访问轨迹等信息,帮助业务精准发展
    c.运营效果分析
    基于页面采集数据和效果数据分析,实时调整运营策略
    (2)安全/业务分析:针对安全业务日志
    a.日常安全指标分析
    业务数据统计、分析、可视化报表展示
    b.潜在安全信息挖掘
    业务数据或系统操作数据嗅探检测、分析
    (3)应用/站内搜索:站内数据快速检索,满足存量数据的快速索引和精准定位
    a.站内信息全文搜索
    应用内商品、文档、社交信息搜索
    b.企业搜索
    企业内部数据快速检索

腾讯云Elasticsearch

腾讯云(Elasticsearch Service,ES)是腾讯云基于开源搜索引擎 Elasticsearch 打造的高可用、可伸缩的云端托管 Elasticsearch 服务。腾讯云 ES 服务 100% 兼容 ELK 架构,广泛应用于互联网、游戏、互联网金融等领域客户网站搜索导航、企业级搜索、服务日志异常监控、点击流分析等业务。

  • 应用场景:
    (1)日志分析
    网站服务器、移动设备、IoT 传感器等设备产生的日志,存在着节点分散、种类多样、规模庞大等问题,这对需要通过日志搜索,进行异常问题定位和业务分析等工作造成了很大的挑战。腾讯云 Elasticsearch Service 提供了弹性可扩展、准实时的集中式存储方案,以及全文搜索功能,方便日志的统一管理和查询,帮助用户快速定位和返现问题,提高解决问题的效率。
    (2)全文搜索
    电商商品搜索、移动应用搜索、企业内部信息搜索等海量数据下的站内搜索服务是高效获取信息的必要途径,腾讯云 Elasticsearch Service 拥
    有全文检索功能,对结构化和非结构化数据都有良好的支持,同时还提供了简单易用的 RESTful API 和各种语言的客户端,方便用户快速搭建稳定的搜索服务,整合到已有到业务框架中。
    (3)商业智能
    在数据驱动运营的行业背景下,电子商务、移动应用、广告媒体等业务都需要对数据进行深入的统计分析和挖掘来辅助商业决策,而规模庞大的业务数据对数据的统计分析造成了很大的挑战。腾讯云Elasticsearch Service 拥有结构化查询的能力,支持复杂的过滤和聚合统计功能,帮助客户对海量数据进行高效地个性化统计分析,发现问题与机会,辅助商业决策,真正地让数据产生价值。

青云Elasticsearch

QingCloud Elasticsearch 是一种基于 Lucene 构建的运行于 QingCloud 虚拟主机之上的多用户分布式全文搜索引擎。向用户提供完整的RESTful API 接口,并内置各种主流插件,为用户提供近实时的索引、搜索和分析功能,轻松支持 TB 级别的全文检索应用。

  • 产品功能:
    (1)开发接口:提供完整的 RESTful API 接口,可以供任意集群节点访问。
    (2)内置插件:内置亚洲语言分词、中英文分词、PDF 和 Microsoft Word 文档解析等常用插件。
    (3)无缝对接对象存储:可以与 QingStor™ 对象存储进行无缝对接,进行数据的存储与恢复。
    (4)监控和告警:提供对集群节点的监控信息,如 CPU 使用率、内存使用率;同时支持创建告警策略。服务相关的监控信息可通过 RESTful API接口轻松获取。

  • 应用场景:
    (1)日志分析:完成结构化和半结构化的日志指标分析,适用于用于网站监控、游戏、广告技术等应用场景。
    (2)站内搜索:提供站内关键信息检索与定位,适用于电商、门户、IT 系统等应用场景。
    (3)业务监控:分析和监测业务中某些实时指标,适用于业务异常告警、实时业务数据分析等场景。

你可能感兴趣的:(Elasticsearch)