当前位置: 首页 > news >正文

翻译【ElasticSearch Server】第一章:开始使用ElasticSearch集群(1)

我们要做的第一件事是安装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(副本)

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

转载于:https://www.cnblogs.com/jefurry/p/3469441.html

相关文章:

  • 转:MVC 下导航超链接本页面高亮的一种解决方案
  • ECSHOP的订单状态
  • 创建正真的Java不可变类
  • 创建Java不可变型的枚举类型Gender
  • hibernate 关系映射之 单向外键关联一对一
  • (转)原始图像数据和PDF中的图像数据
  • 基于HTML5技术的电力3D监控应用(四)
  • 创客运动引发第三次工业革命
  • php错误级别的设置方法
  • 案例参考:分享一个回报率1:3.5的热门竞价赚钱项目
  • paip.调试js 查看元素事件以及事件断点
  • UBUNTU 12.04安装ORACLE
  • 一段小代码
  • sso单点登录研究
  • 字符串处理总结之一(C#String类)
  • (三)从jvm层面了解线程的启动和停止
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • 30天自制操作系统-2
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • JavaScript的使用你知道几种?(上)
  • Java面向对象及其三大特征
  • js中forEach回调同异步问题
  • Linux CTF 逆向入门
  • oldjun 检测网站的经验
  • passportjs 源码分析
  • php ci框架整合银盛支付
  • SQLServer之创建数据库快照
  • 当SetTimeout遇到了字符串
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 关于字符编码你应该知道的事情
  • 规范化安全开发 KOA 手脚架
  • 猴子数据域名防封接口降低小说被封的风险
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 前言-如何学习区块链
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 系统认识JavaScript正则表达式
  • 赢得Docker挑战最佳实践
  • 用mpvue开发微信小程序
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #大学#套接字
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (+4)2.2UML建模图
  • (16)Reactor的测试——响应式Spring的道法术器
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (没学懂,待填坑)【动态规划】数位动态规划