声明:
本系列文章参考地址:
- https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
- https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html
- Elasticsearch: The Definitive Guide by Clinton Gormley and Zachary Tong (O’Reilly). Copyright 2015 Elasticsearch BV, 978-1-449-35854-9。
本系列所有示例的功能实现,均基于5.5版本,部分新版本特性很难找到有效的资料,所以部分内容翻译了官方手册(翻译部分会有标识);本系列示例代码,语法等,在5.5版本使用均是没有问题的,但其他版本未能考虑周全,如2.x版本,部分语法差别还是比较大的。如果非5.5版本使用参考此系列,难以实现部分功能,请参考其他资料。
如果发现有任何问题,请和我联系,我会及时修改,谢谢。
1.简介
Elasticsearch 是一个分布式、可扩展、实时的搜索与数据分析引擎。建立在一个全文搜索引擎库 Apache Lucene™ 基础之上。
2.和lucene的关系
Lucene 仅仅只是一个库,为了充分发挥其功能,需要使用 Java 并将 Lucene 直接集成到应用程序中,使用起来非常麻烦。
Elasticsearch 也是使用 Java 编写的,它的内部使用 Lucene 做索引与搜索,但是它的目的是使全文检索变得简单, 通过隐藏 Lucene 的复杂性,取而代之的提供一套简单一致的 RESTful API;
而且,Elasticsearch 不仅仅是 Lucene,也不仅仅只是一个全文搜索引擎。 它可以被下面这样准确的形容:
- 一个分布式的实时文档存储,每个字段 可以被索引与搜索
- 一个分布式实时分析搜索引擎
- 能胜任上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据
Elasticsearch 将所有的功能打包成一个单独的服务,这样你可以通过程序与它提供的简单的 RESTful API 进行通信, 可以使用自己喜欢的编程语言充当 web 客户端,甚至可以使用命令行。