You Know, for Search…

Elasticsearch 是一个建立在全文搜索引擎框架 Apache Lucene(TM) 基础上的开源搜索引擎, 无论是开源软件还是私有软件,Lucene 都毫无疑问是当今最先进、性能最高和功能最全的搜索引擎框架。

但是 Lucene 只是一个框架,要充分使用它的功能,你需要使用 JAVA 作为开发语言,并且在你的程序中集成 Lucene。更糟的是,你需要深入了解相关知识才能明白它是如何运行的,Lucene 确实非常复杂。

Elasticsearch 也是使用 Java 编写的,并且采用了 Lucene 来实现索引与搜索的功能。而且,在你使用它做全文搜索时,只需要使用简单流畅的 RESTful API 即可,并不需要了解 Lucene 背后复杂的的运行原理。

当然 Elasticsearch 还有很多地方超越了 Lucene,它不仅可以实现全文搜索功能,还可以完成以下工作:

  • 分布式实时文档存储,并将每一个字段都编入索引,使其可以被搜索。
  • 分布式实时分析与搜索引擎。
  • 可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。

这么多的功能被集成到一台服务器上,你可以轻松地通过客户端或者任何你喜欢的程序语言与 Elasticsearch 的 RESTful API 进行通信。

Elasticsearch 的上手是非常简单的。它附带了很多非常合理的默认值,这让初学者很好地避免一上手就要面对复杂的理论。安装完成就可以马上投入使用了。不需要了解很多,你就能变得非常有生产力。

随着学习的深入,你还可以使用 Elasticsearch 更多高级的功能。整个引擎可以很灵活地进行配置。你可以根据自身需求来定制属于你自己的 Elasticsearch。

你可以随意下载、使用、修改 Elasticsearch。它采用 Apache 2 license 进行授权,这是当前最灵活的开源授权方式。源代码托管在 Github 之上:github.com/elastic/elasticsearch
Elasticsearch 在 Apache 2 license下许可使用,可以免费下载、使用和修改。如果你愿意加入我们非常优秀的贡献者社区,请参考:Elasticsearch 贡献

如果你对 Elasticsearch 的功能、插件、SDK 等任何方面有疑问,都可以在这里提出 discuss.elastic.coelastic 中文社区

回忆时光


多年以前,有个叫 Shay Banon 的失业开发者跟随他的新婚妻子来到了伦敦,因为他妻子将在那里学习厨艺。Shay 在寻找工作的同时,开始研究还是早期版本的 Lucene,并打算为她妻子制作一个烹饪菜谱搜索引擎。

直接基于 Lucene 工作会比较困难,所以 Shay 开始实现一个 Lucene 之上的抽象层,这样 Java 程序员可以很方便的为他们的应用程序添加搜索功能。于是他发布了自己的第一个开源项目 “Compass”。

后来 Shay 找到了一份工作,这份工作主要围绕在高性能与分布式内存数据存储的环境中。高性能、实时、分布式搜索引擎是必不可少的需求。因此他决定重写 Compass 库,使其成为一个独立的服务器,这便是 Elasticsearch。

2010年的2月份,第一个公开版本发布了。从此之后,Elasticsearch 成为 Github 上最受欢迎的项目之一,超过300个代码贡献者。一家关于 Elasticsearch 的公司就此成立,它们不仅提供商业支持还在进行新功能的开发,但是 Elasticsearch 一定会永远向大众开放,永远开源给所有需要的人们。

噢,对了,Shay 的妻子还在等待着她的菜谱搜索引擎。