Elasticsearch 系列指南(一)——安装配置

这个世界已经被数据淹没。我们创造的系统所产生的数据可以瞬间轻而易举地将我们压垮,现有的科技一直致力于如何存储数据,并能将拥有大量信息的数据仓库结构化。而当你准备开始从大量的数据中得出结论做决策的时候,美好的一天就要被毁灭了……

Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎。它能帮助你搜索、分析和浏览数据,而往往大家并没有在某个项目一开始就预料到需要这些功能。Elasticsearch 之所以出现就是为了重新赋予硬盘中看似无用的原始数据新的活力。

无论你是需要全文搜索、结构化数据的实时统计,还是两者的结合,这本指南都会帮助你了解其中最基本的概念,从最基本的操作开始学习 Elasticsearch。之后,我们还会逐渐开始探索更加复杂的搜索技术,你可以根据自身的学习的步伐。

Elasticsearch 并不是单纯的全文搜索这么简单。我们将向你介绍讲解结构化搜索、统计、查询过滤、地理定位、自动完成以及你是不是要查找的提示。我们还将探讨如何给数据建模能提升 Elasticsearch 的性能,以及在生产环境中如何配置、监视你的集群。

入门

1.1初始

Elasticsearch 是一个建立在全文搜索引擎 Apache Lucene(TM) 基础上的搜索引擎,可以说 Lucene 是当今最先进,最高效的全功能开源搜索引擎框架。

但是 Lucene 只是一个框架,要充分利用它的功能,你需要使用 JAVA,并且在你的程序中集成 Lucene。更糟的是,你需要做很多的学习了解,才能明白它是如何运行的,Lucene 确实非常复杂。

Elasticsearch 使用 Lucene 作为内部引擎,但是在你使用它做全文搜索时,只需要使用统一开发好的API即可,而并不需要了解其背后复杂的 Lucene 的运行原理。

当然 Elasticsearch 并不仅仅是 Lucene 那么简单,它不仅包括了全文搜索功能,还可以进行以下工作:

分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。
实时分析的分布式搜索引擎。
可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。
这么多的功能被集成到一台服务器上,你可以轻松地通过客户端或者任何你喜欢的程序语言与 ES 的 RESTful API 进行交流。

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

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

基本概念

对es有几个核心概念,开始学习之前理解这些概念将极大的帮助你理解后面的学习

Near Realtime(NRT)–接近实时

elasticsearch 是一个接近实时的搜索平台。通俗的讲就是,从你索引一个文档直到这个文档可被搜索会有一段时间的延迟(一般是1s)。个人理解就是你创建了个文档,会有将近1秒的延迟,别人才能搜索到这个文档

Cluster–集群

集群就是一个或者多个节点(服务器)的集合,承载着你的所有数据并在所有节点之间提供联合索引和搜索能力。一个集群被一个唯一的名字所标识,默认是elasticsearch。这个名字很重要,因为一个节点要加入集群,必须指定这个集群的名字。

确保在不同的环境不要使用相同的集群名字,否则节点将加入错误的集群。

注意,一个集群就有一个节点是合法的。除此之外,你也可以有多个相互独立的集群,每个用一个唯一的名字标识。

Node–节点

节点就是集群中的一个单个服务器,它存储数据,参与集群的索引和搜索。就像一个集群,节点也用一个名字来标识,默认是一个随机的传奇人物的名字,在节点启动的时候被指定。

一个节点可以配置加入一个集群通过集群的名字。默认,每个节点设置为加入名字为elasticsearch 的集群,这就意味着,如果你启动了多个节点在你的网络-假定他们能彼此发现对方-他们将自动的组织成一个名字为elasticsearch的集群。

在一个集群中,你可以拥有你想要数量的节点。除此之外,如果没有其他elastisearch节点当前运行在你的网络上,启动一个节点将默认形成一个新的单个节点的名字为elastisearch的集群

index–索引

一个索引就是文档的集合,这些文档有几分相似的特性。比如,你可以有一个索引存储客户数据,另一个索引存储产品分类,另一个索引存储订单信息。一个索引用一个名字来标识(必须是小写),这个名字被用来指定索引当针对其中的文档执行索引、搜索、更新、删除操作时。

在一个集群中,你可以定义任意数量的索引,只要你想。

es 的index 相当于mysql 的database (个人理解)

Type–类型

在索引中,你可以定义一个或者多个类型。type是index的逻辑分类,怎么定义完全取决于你。大体上,具有相同字段的文档的集合被定义为一个type。打个比方,你运行了一个博客平台,且所有数据存储在了一个index里。在这个index里,你可以给用户数据定义一个type,给博客数据定义一个type,给评论数据定

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值