Elasticsearch服务器开发第二版读书笔记

原创 2017年01月02日 22:30:33

首先很想说,很高兴有位同济的大学研究生同学,让我可以在毕业5个月后,还能再次走进图书馆去借自己想看的书籍,比如最近因为工作需要而接触的elasticsearch。

传入的文档中的数据怎么转化为倒排索引,查询文本怎样变成可搜索的词---->这个数据转化的过程就是分析.

由于其分布性性质和实时功能,许多人把他称为文档数据库。


Elaseticsearch把数据存在一个或多个索引上,每个索引包含各种类型的文档,我们也知道每个文档有很多字段映射定义了Elasticsearch如何对待这些字段


分片:当有大量的文档时,由于内存的限制,硬盘能力,处理能力不足,无法足够响应客户端请求等,一个节点可能不够,在这中情况下,数据可以分为较小的分片(shard)的部分,(其中每个分片都是一个独立的Apache Lucence)。每个分片可以放在不同的服务器上,因此,数据可以在集群中的节点中传播。查询时会把结果合并在一起显示。


Elasticsearch使用文档的唯一标识符来计算文档应该被放到哪个分片中,索引请求到一个节点后,该节点会转发文档到持有相关分片的目标节点中。尝试用文档标识符来获取文档时,发送查询到一个节点。。。


elasticsearch索引是由一个或多个分片组成的,每个分片包含了文档集的一部分。而这些分片也可以有副本,他们是分片的完整副本。在创建索引的过程中,可以规定应创建分片的分片及副本的数量。默认配置是5个分片和一个副本。这也意味着操作结束时,将有10个lucence索引分布在集群中。------每个分片都有自己的分片副本。


字段类型及其公共属性参考:https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-standard-analyzer.html

                                               http://www.cnblogs.com/xing901022/p/5471419.html



Elasticsearch索引的每个文档都有自己的标识符和类型,在ES中,文档存在两种内部标识符。

  • _uid:是索引中文档的唯一标识符,由文档的标识符和类型构成,此字段不需要设置,总是被索引。
  • _id:实际标识符,一般创建文档是时候会传入,如果不传入会自动生成一个。
在es中,映射在文件中以json对象传送,

curl命令时参数设置情况:
curl -XPUT http://localhost:9200/{index}/{type}/_mapping -data-binnary @document.json

这里用--data-binary,没有用-d,因为-d 参数忽略换行符,而换行符在es的批量请求中很重要,也就是说此参数可以保留换行符。



index: es里的index相当于一个数据库。 
type: 相当于数据库里的一个表。 
id: 唯一,相当于主键。 
node:节点是es实例,一台机器可以运行多个实例,但是同一台机器上的实例在配置文件中要确保http和tcp端口不同(下面有讲)。 
cluster:代表一个集群,集群中有多个节点,其中有一个会被选为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。 
shards:代表索引分片,es可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分成多个,分布到不同的节点上,构成分布式搜索。分片的数量只能在索引创建前指定,并且索引创建后不能更改。 
replicas:代表索引副本,es可以设置多个索引的副本,副本的作用一是提高系统的容错性,当个某个节点某个分片损坏或丢失时可以从副本中恢复。二是提高es的查询效率,es会自动对搜索请求进行负载均衡。



ES各种节点的分工: 
客户端节点 
当主节点和数据节点配置都设置为false的时候,该节点只能处理路由请求,处理搜索,分发索引操作等,从本质上来说该客户节点表现为智能负载平衡器。 
独立的客户端节点在一个比较大的集群中是非常有用的,他协调主节点和数据节点,客户端节点加入集群可以得到集群的状态,根据集群的状态可以直接路由请求。

数据节点 
数据节点主要是存储索引数据的节点,主要对文档进行增删改查操作,聚合操作等。数据节点对cpu,内存,io要求较高, 
在优化的时候需要监控数据节点的状态,当资源不够的时候,需要在集群中添加新的节点。

主资格节点说明 
主资格节点的主要职责是和集群操作相关的内容,如创建或删除索引,跟踪哪些节点是群集的一部分,并决定哪些分片分配给相关的节点。 
稳定的主节点对集群的健康是非常重要的。默认情况下任何一个集群中的节点都有可能被选为主节点。 
索引数据和搜索查询等操作会占用大量的cpu,内存,io资源,为了确保一个集群的稳定,分离主节点和数据节点是一个比较好的选择。



健康状态:

安装了head插件之后,可以在web上看到集群健康状态,集群处于绿色表示当前一切正常,集群处于黄色表示当前有些副本不正常,集群处于红色表示部分数据无法正常提供。绿色和黄色状态下,集群都是能提供完整数据的,红色状态下集群提供的数据是有缺失的。



版权声明:本文为博主原创文章,未经博主允许不得转载。

Elasticsearch服务器开发-第2版.pdf 完整版且带目录

  • 2016年04月24日 09:22
  • 16.53MB
  • 下载

ElasticSearch服务器开发

  • 2017年09月01日 13:58
  • 16.53MB
  • 下载

Elasticsearch服务器开发-第2版.pdf

  • 2016年04月18日 15:24
  • 16.53MB
  • 下载

Elasticsearch服务器开发(第2版).pdf

  • 2017年08月26日 19:10
  • 15.6MB
  • 下载

elasticsearch服务器开发学习笔记(二)

第二章索引有点像流水账,但是读着《es服务器开发》真的学到很多东西 特别是向我这样已经有服务已经挂到线上需要维护,但是对es不是太了解的程序员。es索引分片和副本。有就是说有2*分片数个lucen实...
  • cabing2005
  • cabing2005
  • 2017年02月27日 13:35
  • 314

elasticsearch服务器开发学习笔记(三.一)

elasticsearch服务器开发学习笔记(三.一)初识es查询查询es返回你需要的结果基本查询 dsl查询, 过滤 简单的查询POST weibobook/wapbook/_search { ...
  • cabing2005
  • cabing2005
  • 2017年03月07日 17:22
  • 264

【Elasticsearch】服务器开发 超越全文检索

讲述了ES里面除了基本的搜索之外还提供的其他的一些功能,例如suggest功能,还有地理位置查询的功能,可以自定义一些地理位置形状,可以实现距离原点为多少的搜索,并且讲述了如何进行分页,但是需要注意的...
  • molong1208
  • molong1208
  • 2016年01月28日 16:56
  • 1325

[源码]Elasticsearch源码6(5.4插件开发)

本文重点讨论基于5.4.3版本的ES在gradle构建项目的环境下如何做插件开发。一、前言1.1 5.4 和 2.x 源码开发的差别 构建方式从maven变成了gradle这个是最大的差别,而对于ES...
  • psiitoy
  • psiitoy
  • 2017年09月15日 09:49
  • 593

Elasticsearch服务器开发(第2版)原版PDF,超清

  • 2017年09月07日 21:43
  • 16.53MB
  • 下载

Elasticsearch数据迁移与备份

虽然ES提供了replicas shards的机制来保证数据的完整性不会因为几个节点的奔溃而被破坏,但是定期的数据备份以备不时之需依然重要。此外,通过备份与恢复也可实现数据在不同集群间的迁移(直接复制...
  • u014351782
  • u014351782
  • 2016年06月20日 10:46
  • 2765
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Elasticsearch服务器开发第二版读书笔记
举报原因:
原因补充:

(最多只允许输入30个字)