写点什么

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:2814377
用户头像

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

关注

评论

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

Python之简易计算器的制作

芯动大师

Python 9月月更 简易计算器

阿里云搭建halo博客

乌龟哥哥

9月月更

腾讯云搭建wordpress网站超详细介绍

乌龟哥哥

9月月更

Java中的悲观锁和乐观锁是什么意思?其分类依据是啥?

wljslmz

Java 乐观锁 悲观锁 9月月更

Python之斐波那契数列的实现

芯动大师

Python 9月月更 斐波那契数列

《MySQL入门很轻松》第5章:数据完整性及其分类

乌龟哥哥

9月月更

问:React的setState为什么是异步的?

beifeng1996

React

计算机网络——MAC地址、IP地址

StackOverflow

编程 计算机网络 10月月更

(WebFlux)004、WebFilter踩坑记录

编号94530

Spring Boot WebFlux Reactor3 WebFilter

部署华为云DWS过程

乌龟哥哥

9月月更

面试官:说说Event Loop事件循环、微任务、宏任务

loveX001

JavaScript

《MySQL入门很轻松》第2章:MySQL管理工具介绍

乌龟哥哥

9月月更

开发者有话说|我想给你讲一个故事

石云升

个人成长 9月月更

14个你必须要知道的ubuntu快捷键

乌龟哥哥

9月月更

React面试:谈谈虚拟DOM,Diff算法与Key机制

beifeng1996

React

多线程——死锁的原因和解决方案

StackOverflow

编程 多线程 10月月更

2022-09-30:以下go语言代码输出什么?A: true true false true false; B: true false false true false; C: true true

福大大架构师每日一题

Python之鸡兔同笼

芯动大师

9月月更 Python语法 鸡兔同笼

linxu入门指令

乌龟哥哥

9月月更

浅谈云原生安全

HummerCloud

云原生 云安全 云原生安全

大数据ELK(九):使用VSCode测试分词器

Lansonli

ELK 10月月更

数据价值平台化输出:数据服务平台

小鲸数据

数据中台 接口管理 API接口管理 数据服务 数据服务平台

启动 Hello Spring Security Boot 应用

HoneyMoose

GaussDB(DWS)如何实现实时,批量和交付式查询一站式开发

乌龟哥哥

9月月更

promise执行顺序面试题令我头秃,你能作对几道

loveX001

JavaScript

多线程(进阶)

StackOverflow

编程 多线程安全 10月月更

第1章:初识数据库与MySQL----数据库基本概念

乌龟哥哥

9月月更

《MySQL入门很轻松》第4章:数据表中存放的数据类型

乌龟哥哥

9月月更

极速体验SpringCloud Gateway

程序员欣宸

Java SpringCloud SpringCloud Gateway 9月月更

从单机百万tpmc到分布式千万tpmc,GaussDB性能提升的3个关键技术剖析

乌龟哥哥

9月月更

测试

乌龟哥哥

9月月更

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