我们要做的第一件事是安装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. 为什么android的R类要定义成16进制

    联想到c语言中的宏定义:我想是一个原因 如: #define SDL_INIT_TIMER 0x00000001 #define SDL_INIT_AUDIO 0x00000010 #define S ...

  2. 表单插件——form

    表单插件——form 通过表单form插件,调用ajaxForm()方法,实现ajax方式向服务器提交表单数据,并通过方法中的options对象获取服务器返回数据,调用格式如下: $(form). a ...

  3. 欧拉工程第68题:Magic 5-gon ring

    题目链接 任意一条线上的三个数的和都等于9,顺时针,从最小的外圈开始,得到的序列是:432621213 和             序列 9位的字符串:三角环所能形成的最大字符串为432621513. ...

  4. HTML5入门4---HTML5 与 HTML4 同一网页的不同写法

    HTML4写法 css: body { font-family: "Lucida Sans Unicode", "Lucida Grande", Verdana ...

  5. HTML5入门2---js获取HTML元素的值

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  6. PowerDesigner生成的ORACLE 建表脚本中去掉对象的双引号,设置大、小写

    原文:PowerDesigner生成的ORACLE 建表脚本中去掉对象的双引号,设置大.小写 若要将 CDM 中将 Entity的标识符都设为指定的大小写,则可以这么设定: 打开cdm的情况下,进入T ...

  7. sql partition by 的使用

    select a.bs_sn, a.bs_bd_no, a.bs_bk_code, a.bs_kind_no, a.bs_flag, b.det_flag, c.bp_in_no, c.bp_name ...

  8. NYOJ-253 凸包

    LK的旅行 时间限制:2000 ms  |  内存限制:65535 KB 难度:5   描述 LK最近要去某几个地方旅行,她从地图上计划了几个点,并且用笔点了出来,准备在五一假期去这几个城市旅行.现在 ...

  9. jquery学习以及下载链接

    jquery学习链接 http://www.w3school.com.cn/jquery/jquery_intro.asp jquery 脚本库下载链接 http://jquery.com/downl ...

  10. Android相对布局(RelativeLayout)

    Android相对布局(RelativeLayout) 备注:这里的视图和元素是等同的概念. RelativeLayout是一个允许子视图相对于其他兄弟视图或是父视图显示的视图组(通过ID指定).每个 ...