翻译【ElasticSearch Server】第一章:开始使用ElasticSearch集群(1)
我们要做的第一件事是安装ElasticSearch。对于多数应用程序,您开始安装和配置,通常忘记这些步骤的重要性,直到发生了糟糕的事情。这章我们将广泛关注ElasticSearch的这部分。请注意本章不是对每一个配置选项和参数的明确指导。当然,我们愿意完整描述他们,但是如果我们那样做了,我们将不得不再写一本书(甚至更多)。除此之外,ElasticSearch就像现在所有其他可用的应用软件程序-它每天不断发生变化。我们只介绍 我们认为需要的部分、以及特定功能,有时难以理解或太宽泛。在一个地方描述将节省您的一些时间。通过本章,你将学到以下:
- ElasticSearch的基本概念
- 如何安装和配置您的集群
- 使用ElasticSearch REST API
- 如何创建索引
- 如何配置映射
- 如何使用动态映射
- 什么是模板以及如何使用它
- 路由是什么以及如何使用它
- 如何使用索引别名
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)的更多相关文章
- 使用mod_cluster进行apache httpd server和jboss eap 6.1集群配置
本文简单介绍,使用mod_cluster进行apache httpd server和jboss eap 6.1集群配置.本配置在windows上测试通过,linux下应该是一样的.可能要稍作调整.后面 ...
- CentOS6安装各种大数据软件 第四章:Hadoop分布式集群配置
相关文章链接 CentOS6安装各种大数据软件 第一章:各个软件版本介绍 CentOS6安装各种大数据软件 第二章:Linux各个软件启动命令 CentOS6安装各种大数据软件 第三章:Linux基础 ...
- CentOS6安装各种大数据软件 第六章:HBase分布式集群的配置
相关文章链接 CentOS6安装各种大数据软件 第一章:各个软件版本介绍 CentOS6安装各种大数据软件 第二章:Linux各个软件启动命令 CentOS6安装各种大数据软件 第三章:Linux基础 ...
- 《Entity Framework 6 Recipes》翻译系列 (1) -----第一章 开始使用实体框架之历史和框架简述
微软的Entity Framework 受到越来越多人的关注和使用,Entity Framework7.0版本也即将发行.虽然已经开源,可遗憾的是,国内没有关于它的书籍,更不用说好书了,可能是因为EF ...
- 《Entity Framework 6 Recipes》翻译系列(2) -----第一章 开始使用实体框架之使用介绍
Visual Studio 我们在Windows平台上开发应用程序使用的工具主要是Visual Studio.这个集成开发环境已经演化了很多年,从一个简单的C++编辑器和编译器到一个高度集成.支持软件 ...
- Elasticsearch学习系列七(Es分布式集群)
核心概念 集群(Cluster) 一个Es集群由多个节点(Node)组成,每个集群都有一个共同的集群名称作为标识 节点(Node) 一个Es实例就是一个Node.Es的配置文件中可以通过node.ma ...
- Elasticsearch 6.x版本全文检索学习之集群调优建议
1.系统设置要到位,遵照官方建议设置所有的系统参数. https://www.elastic.co/guide/en/elasticsearch/reference/6.7/setup.html 部署 ...
- 第十四章 二进制部署k8s集群的平滑升级
1.软件包下载 去github上下载较新的Kubernetes软件包https://github.com/ 2.升级说明 升级包括master节点升级和node节点的升级,本章升级至v1.15.12: ...
- Service Broker应用(2):不同server间的数据传输,包含集群
不同Server之间的数据传输,包含DB使用AlwaysOn 配置脚本: SQL Server Service Broker 跨集群通信 具体的TSQL 脚本语句如下.注意的是TSQL语句是在发送方还 ...
- 使用Rancher Server部署本地多节点K8S集群
当我第一次开始我的Kubernetes之旅时,我一直在寻找一种设置本地部署环境的方式.很多人常常会使用minikube或microk8s,这两者非常适合新手在单节点集群环境下进行操作.但当我已经了解了 ...
随机推荐
- SDUT 1220 完美数
完美数 Time Limit: 1000ms Memory limit: 65536K 题目描述 任何一个自然数的约数中都有1和它本身,我们把小于它本身的因数叫做这个自然数的真约数. 如6的所有真 ...
- C Primer Plus 第4章 字符串和格式化输入/输出 编程练习
1. #include <stdio.h> int main(void) { ]; ]; printf("请输入您的名字: "); scanf("%s&quo ...
- vector、string实现大数加法乘法
理解 vector 是一个容器,是一个数据集,里边装了很多个元素.与数组最大的不同是 vector 可以动态增长. 用 vector 实现大数运算的关键是,以 string 的方式读入一个大数,然后将 ...
- NAMESPACE_ERR: An attempt is made to create or change an object in a way which is incorrect with regard to namespaces.
解决办法: http://stackoverflow.com/questions/4037125/namespace-err-an-attempt-is-made-to-create-or-chang ...
- 套题T3
秋实大哥与线段树 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit ...
- lintcode :continuous subarray sum 连续子数组之和
题目 连续子数组求和 给定一个整数数组,请找出一个连续子数组,使得该子数组的和最大.输出答案时,请分别返回第一个数字和最后一个数字的值.(如果两个相同的答案,请返回其中任意一个) 样例 给定 [-3, ...
- *[hackerrank]Jim Beam
https://www.hackerrank.com/contests/infinitum-aug14/challenges/jim-beam 学习了线段相交的判断法.首先是叉乘,叉乘的几何意义是有向 ...
- [OOD]违反里氏替换原则的解决方案
关于OOD中的里氏替换原则,大家耳熟能祥了,不再展开,可以参考设计模式的六大设计原则之里氏替换原则.这里尝试讨论常常违反的两种形式和解决方案. 违反里氏替换原则的根源是对子类及父类关系不明确.我们在设 ...
- C++工具系列博文合集
http://www.cnblogs.com/itech/category/240779.html
- Android:Android SDK Manager顺利下载
默认的Android SDK只有Android 4.4的版本,如果需要其他版本的模拟器,需要Android SDK Manager下载, 1.打开Eclipse 2.选择Android SDK Man ...