我们要做的第一件事是安装ElasticSearch。对于多数应用程序,您开始安装和配置,通常忘记这些步骤的重要性,直到发生了糟糕的事情。这章我们将广泛关注ElasticSearch的这部分。请注意本章不是对每一个配置选项和参数的明确指导。当然,我们愿意完整描述他们,但是如果我们那样做了,我们将不得不再写一本书(甚至更多)。除此之外,ElasticSearch就像现在所有其他可用的应用软件程序-它每天不断发生变化。我们只介绍 我们认为需要的部分、以及特定功能,有时难以理解或太宽泛。在一个地方描述将节省您的一些时间。通过本章,你将学到以下:

  1. ElasticSearch的基本概念
  2. 如何安装和配置您的集群
  3. 使用ElasticSearch REST API
  4. 如何创建索引
  5. 如何配置映射
  6. 如何使用动态映射
  7. 什么是模板以及如何使用它
  8. 路由是什么以及如何使用它
  9. 如何使用索引别名

ElasticSearch是什么?

ElasticSearch 是一个由Shay Banon在2010年2月发布的开源的搜索服务器项目,此项目发展成一个在搜索领域的主要解决方案。此外,由于其分布式特性和实时的能力,许多人把它作 为一个文档数据库。让我们浏览一下ElasticSearch的基本概念。

索引(Index)

索 引是ElasticSearch存储数据的地方。如果您来自关系数据库的世界,您能想到的是一个索引表。但相对于关系数据库,表的值存储在索引中是快速和 高效的,尤其是全文搜索,不需要存储原始值。如果您知道MongoDB,您可以认为ElasticSearch的索引就像MongoDB的集合;如果您熟 悉CouchDB可以想像跟CouchDB数据库索引一样。

文档(Document)

ElasticSearch中存储的主要实体是一个文档。类比关系数据库,一个文档是一个数据表中的一行数据。比较一下ElasticSearch文档和MongoDB,都可以有不同的结构,但在ElasticSearch中需要有相同的字段类型。

文档包含字段列(行),但每个字段可能出现多次,这样的字段被称为:MultiValued(多值)。 每个字段都有类型(文本、数字、日期等等)。字段类型也可以是复合的-一个字段可以包含其它子文档或数组。ElasticSearch的字段类型是很重要 的-它给予搜索引擎如何进行各种操作如比较或排序被执行的信息。幸运的是,这可以自动确定。跟关系数据库不同的是,文档不需要固定的结构,每个文档可能有 一组不同的字段,除此之外,在开发应用程序时不必知道字段。当然,可以强迫一个文档结构的使用模式。

文档类型(Document Type)

在 ElasticSearch中,一个索引可以存储不同用途的对象。例如,一个博客应用程序可以存储文章和评论。文档类型可以让我们很容易区分这些对象。值 得注意的是,几乎所有的文档可以有不同的结构,但是在实际操作的时候,将它划分为类型明显有助于数据操作。当然,需要考虑到局限性。这样的一个限制就是不 同的文档类型不能为同一属性设置不同类型。

节点和集群(Node and Cluster)

ElasticSearch 可以作为单个搜索服务器独立工作。然而,为了能够处理大型数据集、实现容错,ElasticSearch可以在许多协同服务器上运行。所有的这些服务器被 称为一个集群,并且每一台服务器被称为一个节点。大量数据可以通过索引分片来跨越许多节点(分裂成更小的各个部分)。更好的可用性和性能通过副本(索引部 分副本)来实现。

分片(Shard)

当我们有大量的文档,但由于内存限制、硬盘容量等等原因,单个节点是不够的。另一个 问题是,需要的功能是如此的复杂,服务器计算能力是不够的。在这种情况下,数据可以划分为更小的部分这称为“分片”。每个分片都是一个独立的Apache Lucene索引。每一个分片都可以放在不同的服务器,因此您的数据可以散布在集群。当您从多个分片查询索引,ElasticSearch将查询发送到每 个相关分片并透明的合并结果集,所以您的应用程序不需要了解分片。

Replica(副本)

为了增加查询吞吐量或实现高可用性,可以使用分片副本。主分片用于直接更改索引操作,副本只是主分片的一个精确复制,并且每个分片都可以有零个或多个副本。当主分片丢失(例如,服务器的分片数据不可用),集群可以提升一个副本成为新的主分片。

翻译【ElasticSearch Server】第一章:开始使用ElasticSearch集群(1)的更多相关文章

  1. 使用mod_cluster进行apache httpd server和jboss eap 6.1集群配置

    本文简单介绍,使用mod_cluster进行apache httpd server和jboss eap 6.1集群配置.本配置在windows上测试通过,linux下应该是一样的.可能要稍作调整.后面 ...

  2. CentOS6安装各种大数据软件 第四章:Hadoop分布式集群配置

    相关文章链接 CentOS6安装各种大数据软件 第一章:各个软件版本介绍 CentOS6安装各种大数据软件 第二章:Linux各个软件启动命令 CentOS6安装各种大数据软件 第三章:Linux基础 ...

  3. CentOS6安装各种大数据软件 第六章:HBase分布式集群的配置

    相关文章链接 CentOS6安装各种大数据软件 第一章:各个软件版本介绍 CentOS6安装各种大数据软件 第二章:Linux各个软件启动命令 CentOS6安装各种大数据软件 第三章:Linux基础 ...

  4. 《Entity Framework 6 Recipes》翻译系列 (1) -----第一章 开始使用实体框架之历史和框架简述

    微软的Entity Framework 受到越来越多人的关注和使用,Entity Framework7.0版本也即将发行.虽然已经开源,可遗憾的是,国内没有关于它的书籍,更不用说好书了,可能是因为EF ...

  5. 《Entity Framework 6 Recipes》翻译系列(2) -----第一章 开始使用实体框架之使用介绍

    Visual Studio 我们在Windows平台上开发应用程序使用的工具主要是Visual Studio.这个集成开发环境已经演化了很多年,从一个简单的C++编辑器和编译器到一个高度集成.支持软件 ...

  6. Elasticsearch学习系列七(Es分布式集群)

    核心概念 集群(Cluster) 一个Es集群由多个节点(Node)组成,每个集群都有一个共同的集群名称作为标识 节点(Node) 一个Es实例就是一个Node.Es的配置文件中可以通过node.ma ...

  7. Elasticsearch 6.x版本全文检索学习之集群调优建议

    1.系统设置要到位,遵照官方建议设置所有的系统参数. https://www.elastic.co/guide/en/elasticsearch/reference/6.7/setup.html 部署 ...

  8. 第十四章 二进制部署k8s集群的平滑升级

    1.软件包下载 去github上下载较新的Kubernetes软件包https://github.com/ 2.升级说明 升级包括master节点升级和node节点的升级,本章升级至v1.15.12: ...

  9. Service Broker应用(2):不同server间的数据传输,包含集群

    不同Server之间的数据传输,包含DB使用AlwaysOn 配置脚本: SQL Server Service Broker 跨集群通信 具体的TSQL 脚本语句如下.注意的是TSQL语句是在发送方还 ...

  10. 使用Rancher Server部署本地多节点K8S集群

    当我第一次开始我的Kubernetes之旅时,我一直在寻找一种设置本地部署环境的方式.很多人常常会使用minikube或microk8s,这两者非常适合新手在单节点集群环境下进行操作.但当我已经了解了 ...

随机推荐

  1. 通过快捷键及cmd命令注销系统

    公司的外网内网是隔离的 外网的远程电脑屏幕一半卡那了,页面注销键正好在卡死的那一半屏幕上,用以下简单方法注销远程重新连接,问题解决了. 1.通过快捷键win+r打开“运行...” 2.输入CMD 回车 ...

  2. 0环境设置 - AUTOTRACE设置

    Autotrace是sqlplus的一个工具,用来显示所执行查询的查询计划 设置步骤 • cd [ORACLE_HOME]/rdbms/admin• log into SQL*Plus as SYST ...

  3. Mysql 1030 Got error -1 from storage engine 错误解决

    检查你的my.cnf或my.ini,里面会有一个参数innodb_force_recovery,你看看他的值,默认是没有这个参数,没有的话,他的默认值是0,这个参数的值如果大于0,innodb会被禁止 ...

  4. [转]C++四种cast操作符

    http://blog.csdn.net/starryheavens/article/details/4617637 C 风格(C-style)强制转型如下: (T) expression 或 T(e ...

  5. Windows基于Apache的svn服务器配置

    参照 http://bbs.iusesvn.com/thread-158-1-1.html文章,经过svn的洗刷,终于把它配置成功,现在把我所配置的方法,记录下来,以供其他有需要的朋友参考,需要改进的 ...

  6. Lumina将是基于 Qt工具箱,旨在取代KDE成为PC-BSD默认的桌面环境

    Lumina Desktop 1.1.0 发布了,该版本是重要更新,包括全新的以及完全重新编写的utilities,并对底层基础架构进行改进. Lumina将是基于 Qt工具箱,旨在取代KDE成为PC ...

  7. java:打包

    包名命名规范: 1.包名全部小写 2.包名一般情况下是域名的倒过来写+个性命名,如:tinyphp.com,就写成com.tinyphp+.xxx 打包方法 package + 包名 package ...

  8. Excel操作--使用NPOI导入导出Excel为DataTable

    1.ExcelHelper封装 namespace NPOI操作Excel { public class ExcelHelper { /// <summary> /// DataTable ...

  9. spring-boot-quartz, 依赖spring-boot-parent

    spring-boot-quartz, 依赖spring-boot-parent spring-boot Easyui Quartz 项目启动后输入:http://localhost/ 数据库文件:  ...

  10. C#实现Comparable接口实现排序

    C#中,实现排序的方法有两种,即实现Comparable或Comparer接口,下面简单介绍实现Comparable接口实现排序功能. 实现Comparable接口需要实现CompareTo(obje ...