你知道的, 为了搜索…
Elasticsearch
是一个开源的搜索引擎,建立在一个全文搜索引擎库 Apache Lucene™
基础之上。 Lucene
可以说是当下最先进、高性能、全功能的搜索引擎库—无论是开源还是私有。
但是 Lucene
仅仅只是一个库。为了充分发挥其功能,你需要使用 Java
并将 Lucene
直接集成到应用程序中。 更糟糕的是,您可能需要获得信息检索学位才能了解其工作原理。Lucene
非常 复杂。
Elasticsearch
也是使用 Java
编写的,它的内部使用 Lucene
做索引与搜索,但是它的目的是使全文检索变得简单, 通过隐藏 Lucene
的复杂性,取而代之的提供一套简单一致的 RESTful API
。
然而,Elasticsearch
不仅仅是 Lucene
,并且也不仅仅只是一个全文搜索引擎。 它可以被下面这样准确的形容:
-
一个分布式的实时文档存储,每个字段 可以被索引与搜索
-
一个分布式实时分析搜索引擎
-
能胜任上百个服务节点的扩展,并支持
PB
级别的结构化或者非结构化数据
Elasticsearch
将所有的功能打包成一个单独的服务,这样你可以通过程序与它提供的简单的 RESTful API
进行通信, 可以使用自己喜欢的编程语言充当 web
客户端,甚至可以使用命令行(去充当这个客户端)。
就 Elasticsearch
而言,起步很简单。对于初学者来说,它预设了一些适当的默认值,并隐藏了复杂的搜索理论知识。 它 开箱即用 。只需最少的理解,你很快就能具有生产力。
随着你知识的积累,你可以利用 Elasticsearch
更多的高级特性,它的整个引擎是可配置并且灵活的。 从众多高级特性中,挑选恰当去修饰的 Elasticsearch
,使它能解决你本地遇到的问题。
回忆时光
许多年前,一个刚结婚的名叫 Shay Banon
的失业开发者,跟着他的妻子去了伦敦,他的妻子在那里学习厨师。 在寻找一个赚钱的工作的时候,为了给他的妻子做一个食谱搜索引擎,他开始使用 Lucene
的一个早期版本。
直接使用 Lucene
是很难的,因此 Shay
开始做一个抽象层,Java
开发者使用它可以很简单的给他们的程序添加搜索功能。 他发布了他的第一个开源项目 Compass
。
后来 Shay
获得了一份工作,主要是高性能,分布式环境下的内存数据网格。这个对于高性能,实时,分布式搜索引擎的需求尤为突出, 他决定重写 Compass
,把它变为一个独立的服务并取名 Elasticsearch
。
第一个公开版本在2010年2月发布,从此以后,Elasticsearch
已经成为了 Github
上最活跃的项目之一,他拥有超过300
名 contributors
(目前736
名 contributors
)。 一家公司已经开始围绕 Elasticsearch
提供商业服务,并开发新的特性,但是,Elasticsearch
将永远开源并对所有人可用。
据说,Shay
的妻子还在等着她的食谱搜索引擎…