写点什么

Elasticsearch 的诞生、发展与愿景

  • 2014-12-10
  • 本文字数:1715 字

    阅读完需:约 6 分钟

Elasticsearch 是一款基于 Apache Lucene 构建的开源搜索引擎,它采用 Java 编写并使用 Lucene 构建索引、提供搜索功能,Elasticsearch 的目标是让全文搜索变得简单,开发者可以通过它简单明了的 RESTFul API 轻松地实现搜索功能,而不必去面对 Lucene 的复杂性。Elasticsearch 能够轻松的进行大规模的横向扩展,以支撑 PB 级的结构化和非结构化海量数据的处理,最近来自于 S&S Media 的 Diana Kupfer 就 Elasticsearch 的发展历程采访了其创建者Shay Banon,本文整理了该采访的主要内容,如果想阅读英文原文,可以点击这里

在谈到为什么会接触Lucene 并开发Elasticsearch 的时候,Shay Banon 认为自己参与Lucene 完全是一种偶然,当年他还是一个待业工程师,跟随自己的新婚妻子来到伦敦,妻子想在伦敦学习做一名厨师,而自己则想为妻子开发一个方便搜索菜谱的应用,所以才接触到Lucene。直接使用Lucene 构建搜索有很多问题,包含大量重复性的工作,所以Shay 便在Lucene 的基础上不断地进行抽象,让Java 程序嵌入搜索变得更容易,经过一段时间的打磨便诞生了他的第一个开源作品“Compass”,中文即“指南针”的意思。之后,Shay 找到了一份面对高性能分布式开发环境的新工作,在工作中他渐渐发现越来越需要一个易用的、高性能、实时、分布式搜索服务,于是他决定重写Compass,将它从一个库打造成了一个独立的server,并将其改名为Elasticsearch。

对于开发开源分布式系统的一些最佳实践,以及需要特别注意的地方,Shay Banon 认为构建一个分布式的系统并不容易,在将Elasticsearch 从一个个人项目变成一个公司项目之后,他们的首要任务就是创建一个崭新的测试基础设施以测试并验证系统的行为。分布式系统需要在网络上的不同机器上运行,这意味着当错误发生的时候很难调试,为此Elasticsearch 花费了大量时间构建了一个能够将分布式测试作为“普通”集成测试的一部分运行的测试工具。Shay Banon 认为“如果一个系统没有测试,何谈它的运行机理”,测试系统是构建分布式系统最重要的基础设施之一。

Shay Banon 认为对于现在的企业而言数据是所有业务的生命源泉,企业想要通过最简单的方式从数据中获取尽可能多的价值,而搜索就是实现这一目标的一种非常好的方式。 Elasticsearch 能够对海量数据进行全文搜索,结构化的搜索和分析,并且已经被大量的组织所使用,包括 Foursquare、Wikimedia、GitHub 以及 CERN。谈到 Elasticsearch 的成功,Shay Banon 认为 Elasticsearch 通过构建一种能够允许用户将任意领域模型映射到“搜索”上的技术实现了用例的爆发式增长;通过标准化的 JSON 和 RESTful 接口,使用不同编程语言、不同框架的开发者可以将其应用到各种各样的用例中。另外,Elasticsearch 不关心数据的类型,无论是传统的 web 页面、word 文档、web 服务器的日志,还是 Foursquare 上的一个位置,银行的一条交易记录都可以通过它进行索引并搜索。

今年夏天,Elasticsearch 获得了 7000 万美元的 C 轮融资,对于该融资对公司路线图的影响,Shay Banon 说:

“正如你所看到的,作为一家公司我们有非常雄伟的目标。我们最高的目标就是尽快地为我们的用户交付实实在在的东西。在创建公司的时候我们做的第一件事就是确保所有流行的语言和框架都有正式的客户端驱动。现在,我们已经有可以与 Ruby、Python、PHP、Perl、.NET 和 Java 集成的客户端,将来会有更多。我们还在构建 Kibana 和 Logstash,前者旨在让用户能够非常容易地可视化 Elasticsearch 中的数据,后者则是为了收集、分析和存储日志而设计,用户可以使用它将数据导入到 Elasticsearch 中。除此之外,我们还在开发一个能够将 Elasticsearch 与 Hadoop 集成到一起的模块,它支持所有的 Hadoop 发行版,包括 Apache Hadoop、MapR、Cloudera 和 Hortonworks。这些都是大项目,大部分投资都进入到了这些项目的开发中。通过融资,我们不仅能够确保公司可以实现短期目标,同时还能够制定雄伟的长期计划并尽快地开始实施。”


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-12-10 02:2814619
用户头像

发布了 321 篇内容, 共 133.7 次阅读, 收获喜欢 19 次。

关注

评论

发布
暂无评论
发现更多内容

设计电商秒杀系统

小虾米

「架构实战营」

毕业总结

小虾米

「架构实战营」

在IDEA配置Tomcat你GET到了吗

迷彩

调试 IDEA tomcat构建 开发工具 Web 6月月更

50行代码串行Promise,koa洋葱模型原来是这么实现?

若川

JavaScript 前端 Node Jest koa2

面对 this 指向丢失,尤雨溪在 Vuex 源码中是怎么处理的

若川

JavaScript Vue 前端 前端开发 vuex

面试官问:JS的继承

若川

JavaScript 前端 前端开发

模块化开发

Jason199

js 模块化 6月月更

Ubuntu下安装OpenJDK10

程序员欣宸

Java Openjdk 6月月更

SpringCloud - Ribbon核心源码解析

码农参上

微服务 SpringCloud spring 源码

SpringCloud - Feign核心源码解析

码农参上

微服务 SpringCloud spring 源码

【使用Python实现算法】02 原生类型与内置函数

★忆先★

Python 算法题

从小到大为何一谈学习就愁眉苦脸

宇宙之一粟

学习 6月月更

怎样能低成本构建一个电商平台

Geek_99967b

小程序 电商

OpenHarmony应用开发之二维码生成器

坚果

鸿蒙 OpenHarmony OpenHarmony 3.1 Release 6月月更

Java中数组参考指南

okokabcd

Java’

【使用Python实现算法】01 语言特性

★忆先★

Python 算法 算法题

要搞清楚什么是同步,异步,串行,并行,并发,进程,线程,协程

乌龟哥哥

6月月更

Scala 基础 (三):运算符和流程控制

百思不得小赵

scala 大数据 6月月更

Prometheus 2.35.0 新特性

耳东@Erdong

release Prometheus 6月月更

如何系统学习LabVIEW?

不脱发的程序猿

​LabVIEW LabVIEW机器视觉 ​LabVIEW工业控制 ​LabVIEW单片机 ​LabVIEW开发技巧

Java Core「18」JCF 及常见问题

Samson

学习笔记 Java core 6月月更

攻防演练中蓝队针对攻击方式复盘总结

穿过生命散发芬芳

6月月更 攻防演练

JavaScript 对象所有API解析

若川

JavaScript 前端 前端开发

COSCon'22 讲师征集令

开源社

开源

Flutter SliverAppBar全解析,你要的效果都在这了!

yechaoa

flutter android 6月月更 SliverAppBar

声网 VQA:将实时互动中未知的视频画质用户主观体验变可知

RTE开发者社区

人工智能 音视频

面试官问:JS的this指向

若川

JavaScript 前端 前端开发

云厂商为什么都在冲这个KPI?

脑极体

去哪儿网(Qunar) DevOps 实践分享

laofo

DevOps cicd 研发效能 持续交付 工程效率

面试官问:能否模拟实现JS的new操作符

若川

JavaScript 前端 前端开发

一种低成本增长私域流量,且维护简单的方法

Geek_99967b

小程序 电商

Elasticsearch的诞生、发展与愿景_大数据_孙镜涛_InfoQ精选文章