Elasticsearch是一个实时分布式搜索和分析引擎。
它让你以前所未有的速度处理大数据成为可能。
它用于全文搜索、结构化搜索、分析以及将这三者混合使用:
维基百科使用Elasticsearch提供全文搜索并高亮关键字,以及输入实时搜索(search-as-you-type)和搜索纠错(did-you-mean)等搜索建议功能。
英国卫报使用Elasticsearch结合用户日志和社交网络数据提供给他们的编辑以实时的反馈,以便及时了解公众对新发表的文章的回应。
StackOverflow结合全文搜索与地理位置查询,以及more-like-this功能来找到相关的问题和答案。
Github使用Elasticsearch检索1300亿行的代码。
全文搜索,分析系统以及分布式数据库这些早就已经存在了
它的革命性在于将这些独立且有用的技术整合成一个一体化的、实时的应用
首先 拥有数据
Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎
Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。
Lucene非常复杂,你需要深入了解检索的相关知识来理解它是如何工作的。
Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。
不过,Elasticsearch不仅仅是Lucene和全文搜索,我们还能这样去描述它:
分布式的实时文件存储,每个字段都被索引并可被搜索
分布式的实时分析搜索引擎
可以扩展到上百台服务器,处理PB级结构化或非结构化数据
它提供了许多合理的缺省值,并对初学者隐藏了复杂的搜索引擎理论。
安装
curl -L -O http://download.elasticsearch.org/PATH/TO/VERSION.zip <1>
unzip elasticsearch-
VERSION.zipcdelasticsearch−
V
E
R
S
I
O
N
.
z
i
p
c
d
e
l
a
s
t
i
c
s
e
a
r
c
h
−
VERSION
Marvel是Elasticsearch的管理和监控工具,在开发环境下免费使用。它包含了一个叫做Sense的交互式控制台,使用户方便的通过浏览器直接与Elasticsearch进行交互。
启动
如果只有本地可以访问,尝试修改配置文件 elasticsearch.yml
中network.host(注意配置文件格式不是以#开头的要空一格, :后要空一格) 为network.host: 0.0.0.0
如果想在后台以守护进程模式运行,添加-d参数。
curl ‘http://localhost:9200/?pretty’
节点(node)是一个运行着的Elasticsearch实例。
集群(cluster)是一组具有相同cluster.name的节点集合,他们协同工作,共享数据并提供故障转移和扩展功能,当然一个节点也可以组成一个集群。
访问marvel http:\/\/localhost:9200\/_plugin\/marvel\/
访问sense http:\/\/localhost:9200\/_plugin\/marvel\/sense\/