Elasticsearch(1)Getting started

本文介绍Elasticsearch这一高性能开源搜索引擎的主要功能与应用场景,包括产品搜索、日志分析、价格警报系统及商业智能等。同时深入探讨其核心概念如集群、结点、索引、文档等,帮助读者理解其工作原理。

    Elasticsearch是高度可扩展的开源全文和分析引擎。他允许你快速保存、搜索和分析大数据并且几乎是实时的。通常被用作潜在的引擎或者技术驱动有复杂搜索特性和要求的程序。

    下面是Elasticsearch可以被用来的几个例子:

    (1)我们运行一个网上商店,允许用户搜索我们销售的产品。在这个例子中,我们可以使用Elasticsearch保存我们整个产品目录和库存,并且提供搜索和自动完成建议给用户。

    (2)我们希望搜集我们要分析的日志或者事务数据,并且挖掘这些数据用来寻找趋势、统计、综述或者异常。在这个例子中,我们可以使用Logstash(Elasticsearch/Logstash/Kibana stack 的一部分)去搜集,聚合并且分析我们的数据,然后让Logstash反馈这个数据到Elasticsearch中。一旦这个数据进入Elasticsearch,我们可以搜索和聚合去发掘任何吸引你的信息。

    (3)我们运行一个价格提醒平台运行价格敏感的用户指定一个规则,比如我有兴趣购买一个电子工具并且我希望被通知如果下个月内任何卖家的这个工具的价格降到$X以下。在这种情况下,我们可以采取卖家价格,把他们放进Elasticsearch中并且使用它的反向搜索(Percolator)能力去匹配价格变化和用户查询匹配,最终推送这些提醒给用户一旦匹配被找到。

    (4)我们有分析或者商业智能需求并且想快速集成、分析、可视化并且询问专门的问题基于大量的数据(百万或者十亿条数据)。在这个例子中,我们使用Elasticsearch去保存我们的数据然后使用Kibana(Elasticsearch/Logstash/Kibana stack一部分)去建立自定义仪表盘可以可视化对我们重要的数据方面。此外,我们可以使用Elasticsearch集成功能去执行复杂的商业智能查询依靠我们的数据


基本概念

Near RealTime  搜索很快,几乎是实时的,是不是因为他二分查找,索引都是提前建好的,很快。


Cluster 

集群是一个或多个结点的集合,一起持有我们整个数据和并且提供联合索引和搜索能力跨越所有的结点。一个集群由唯一的名字标识,默认是elasticsearch。这个名字很重要,因为结点可以成为集群的一部分仅仅在结点通过名字设置加入集群。

    确保在不同的环境使用不同的名称。不然可能让结点加入错误的集群,比如,使用logging-devlogging-stage, andlogging-prod for the development, staging, and production clusters.

注意:可以并且很合适让一个集群只有一个结点。更多的,我们可以有多个独立的集群每个有他自己唯一的集群名 


Node

一个结点是一个单独服务器,是我们集群的一部分,保存我们的数据,参与集群索引和搜索能力。就像一个集群,结点由一个名称标识,默认是一个随机的Marvel字符名在结点启动的时候添加。我们可以定义任何节点名如果我们不想要默认的。这个名字对管理目的很重要,我们要指定网络上的哪个服务器响应集群中的哪个结点。


一个结点可以通过集群名字配置加入一个特殊的集群。默认,每个结点被设置加入一个叫elasticsearch的集群,意味着,如果我们启动一些结点在网络,假设他们可以彼此发现,他们所有会自动形成并且加入一个单独的集群叫elasticsearch。

   在一个单独的集群,我们可以随意指定结点。而且,如果当前没有其他Elasticsearch结点在我们的网络上,启动一个结点会默认产生一个新的单节点集群叫elasticsearch。

  

Index 

一个索引是有相似特征的文档的集合。比如,我们有一个索引用来顾客数据,另一个索引用来产品目录,还有一个索引用来排序数据。一个索引通过名称标识,必须是小写,并且这个名字被用来指向索引当对他内部的文档执行索引、查询、更新和删除。

在一个单独是集群,可以指定随意的索引。


Type

在索引中,我们定义一个或者多个类型。一个类型是索引的一个逻辑分类/部分,语法上完全取决于我们。通常,一个类型被定义给有一些共同域的文档。比如,假设我们运行一个日志平台并且保存所有的数据在一个单独的索引中。在这个索引中,我们可能想定义一个类型给用户数据,另一个类型给博客数据,还有一个类型给评论数据。


Document

一个文档是可以被索引的信息的基本单元。比如,我们可以有一个文档给一个单独的顾客,另一个文档给一个单独的产品,还有一个给单独的订单。这个文件表达为JSON。


在index或type中,可以保存任意的文档。注意:虽然一个文档物理上位于一个索引中,一个文档实际上必须索引或者分配给索引中的一个类型


Shards & Replicas

一个索引可以潜在保存大数据量信息可以超过一个单独结点的硬件限制。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值