elastic-search(弹性搜索)课件_第1页
elastic-search(弹性搜索)课件_第2页
elastic-search(弹性搜索)课件_第3页
elastic-search(弹性搜索)课件_第4页
elastic-search(弹性搜索)课件_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

走近elasticsearch分享人林云霞概念解释Part01系统原理Part02分布式集群Part03应用场景Part04概念解释01概念解释RESTful

APIfulltextsearchrealtimesearchandanalyticsengineElasticsearchJSONoverHTTPdistributedLucenebasedmultitenancyopen-sourcehignavailabilityscalesmassivelyschemafree

概念解释

ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。支持通过HTTP使用JSON进行数据索引,它能够快速搜索数十亿的文件以及PB级的数据,结构化或者非结构化的数据都可以。简介

概念解释节点一个节点就是集群中的一个服务器集群点多台Es服务器的结合的统称叫ES集群,一个集群包含多台服务器,多个节点。分片主分片和副本分片

主分片1N

复制分片概念解释索引中的索引是组织数据的逻辑空间,一个索引就是一个拥有几分相似特征的文档的集合类型在一个索引中,你可以定义一种或多种类型文档一个文档是一个可被索引的基础信息单元数据库表行概念解释索引(index)类型(type)文档(doc)1N1N点此添加标题集群节点主分片副本分片索引概念解释文档概念解释主节点控制集群,负责集群中的操作,协调创建索引、查询请求客户端节点负载均衡,组装返回的数据给客户端节点类型对应节点相关配置主节点Node1node.master=true数据节点Node2node.date=true客户端节点Node3node.data=false;node.master=false集群中有很多结点,可以配置为3种不同的角色系统原理02系统原理

Elasticsearch使用了ApacheLucene,其内部使用的是被称为倒排索引的数据结构。存储模型

倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(invertedindex)。倒排索引系统原理文档是Elasticsearch的数据单位,对文档中的词项进行分词,并创建去重词项的有序列表,将词项与其在文档中出现的位置列表关联,便形成了倒排索引。我们来看下如下2个文档是如何被倒排索引的:

文档1(Doc1):零售应用开发一室主题分享文档2(Doc2):数据仓库团队主题分享文档1(Doc1):零售/应用/开发/一室/主题/分享文档2(Doc2):数据/仓库/团队/主题/分享系统原理倒排索引词项文档零售doc1应用doc1开发doc1一室doc1主题doc1、doc2分享doc1、doc2数据doc2仓库doc2团队doc2文档1(Doc1):零售/应用/开发/一室/主题/分享文档2(Doc2):数据/仓库/团队/主题/分享系统原理当我们查询“数据分享”这一个中文分词时,只需要知道他在哪个文档即可。Termsdoc1doc2数据X分享xXSCORE(相关度)12

两个文档都匹配,但是DOC2比其它的有更多的匹配项。相关度评分为2,如果我们加入简单的相似度算法(similarityAndlgorithm),计算匹配单词的数目,这样我们就可以说DOC2这个文档比其它的匹配度更高,这对于我们的查询结果具有更多相关性。系统原理

当我们发送索引一个新文档的请求到协调节点后,将发生如下一组操作:Elasticsearch集群中的每个节点都包含了改节点上分片的元数据信息。协调节点(默认)使用文档ID参与计算,以便为路由提供合适的分片。Elasticsearch使用MurMurHash3函数对文档ID进行哈希,其结果再对分片数量取模,得到的结果即是索引文档的分片。shard=hash(document_id)%(num_of_primary_shards)新建索引系统原理coordinatingnodeshardmemorybuildertranslogfilesystemcacheempotytranslogdiskwriterequestrouterequestrefreshevery1secflushevery30minorwhengetstoobigcommitwhenevery5secwitheverywriteoperationandwhenflushedcommittodishwithtranslogflushinsideashard添加标题posthttp://localhost:9200/blog/newarticle/1{"author":"林云霞","creatDate":"20170729","content":"elasticsearch是一个非常优秀的搜索引擎","place":"招银网络科技"}新建索引{"_index":"blog","_type":"newarticle","_id":"1","_version":1,"result":"created","_shards":{"total":3,"successful":2,"failed":0},"created":true}系统原理删除

磁盘上的每个段都有一个相应的.del文件。当删除请求发送后,文档并没有真的被删除,而是在.del文件中被标记为删除。该文档依然能匹配查询,但是会在结果中被过滤掉。当段合并(我们将在本系列接下来的文章中讲到)时,在.del文件中被标记为删除的文档将不会被写入新段。更新接下来我们看更新是如何工作的。在新的文档被创建时,Elasticsearch会为该文档指定一个版本号。当执行更新时,旧版本的文档在.del文件中被标记为删除,新版本的文档被索引到一个新段。旧版本的文档依然能匹配查询,但是会在结果中被过滤掉。更新和删除添加标题posthttp://localhost:9200/blog/newarticle/1{"author":"林云霞","creatDate":"20170729","content":"简单介绍elasticsearch的基本原理","place":"招银网络科技",

"updateDate":"20170804"}更新{"_index":"blog","_type":"newarticle","_id":"1",

"_version":2,

"result":"updated","_shards":{"total":3,"successful":2,"failed":0},

"created":false}添加标题deletehttp://localhost:9200/blog/newarticle/1

删除{"found":true,"_index":"blog","_type":"newarticle","_id":"1","_version":3,

"result":"deleted","_shards":{"total":3,"successful":2,"failed":0}}系统原理查询阶段查协调节点向索引中的每个分片(原本或副本)广播。每个分片在本地执行搜索并且建立了匹配document的优先队列(priorityqueue)并将documentIDs返回协调节点取回阶段协调节点将向包含原始文档的分片发起请求。全部分片填充文档信息并将其返回给协调节点。查询系统原理searchrequestPriorityqueuePriority

queuePriority

queuePriority

queuequeryphasesendrequesttoallshardscreateapriorityqueuetogloballysortresultsreturnedbyshardsfetchphaserequestdocumentstoreturnedtotheclientfromindividualshardsfetchphasereturndocumentsrequestbythecoordinatingnodeafterenrichingthemqueryphaseeachshardsperformssearchlocallycreateapriorityqueueofsizefrom+sizeandsortsresultsbyrelevancesenddocumentIDsandscoresofmatchingdocumentstothecoordinatingnodecoordinatingnodeshardshardshard添加标题gethttp://localhost:9200/blog/newarticle/1查询{"_index":"blog","_type":"newarticle","_id":"1","_version":2,"found":true,"_source":{"author":"林云霞","creatDate":"20170729","content":"基本原理了已经介绍完了!","place":"招银网络科技","updateDate":"20170804"}}分布式集群03分布式集群空集群分布式集群http://localhost:9200/_cluster/health{"cluster_name":"my-application","status":"green","timed_out":false,"number_of_nodes":1,"number_of_data_nodes":1,"active_primary_shards":0,"active_shards":0,"relocating_shards":0,"initializing_shards":0,"unassigned_shards":0,"delayed_unassigned_shards":0,"number_of_pending_tasks":0,"number_of_in_flight_fetch":0,"task_max_waiting_in_queue_millis":0,"active_shards_percent_as_number":100}集群健康颜色意义green所有主要分片和复制分片都可用yellow所有主要分片可用,但不是所有复制分片都可用red不是所有的主要分片都可用分布式集群http://localhost:9200/blog{"settings" : {"number_of_shards" : 3,"number_of_replicas" : 1}}添加索引分布式集群添加索引分布式集群故障转移分布式集群

随着应用需求的增长,我们该如何扩展?如果我们启动第三个节点,我们的集群会自我感知,这时便成

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论