ElasticSearch技术分享 ppt课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
协调节点(coordinating node)使用文档ID(默认)将文档路由到对应的分片。 Elasticsearch将文档ID以murmur3作为散列函数进行散列,并通过索引中的主分片数量 进行取模运算,以确定文档应被索引到哪个分片。 shard = hash(document_id) % (num_of_primary_shards)
文章2的所有关键词为:[he] [live] [shanghai]
建立倒排索引
03 关键词 文章号 [出现频率] 出现位置
guangzhou 1
[2]
3,6
he
2
[1]
1
i
1
[1]
4
live
1
[2]
2,5
2
[1]
2
shanghai 2
[1]
3
tom
1
[1]
1
04
节点分类
01 默认节点(node.master:true AND node.data:true)
39
wenku.baidu.com
02 一个简单的分词器遇到空格和标点
的时候,会将文本拆成词条
Token过滤器(Token filtering)
03 最后,词条按顺序通过每个Token过
滤器,这个过程可能会改变词条 (例如小写化,删除无用词或增加 同义词)
04
Analyzer内部机制
04
内置分析器
01 02 03 04 05 06 07 08
默认值,既有成为主节点的资格,又可以存储数据,还可以处理客户端的请求
02 Master节点(node.master:true AND node.data:false)
有成为主节点的资格,可以参与选举,master节点负责维护整个集群状态并保证数据一致性
03 Data节点(node.master:false AND node.data:true)
标准分析器( Standard Analyzer ) 简单分析器( Simple Analyzer ) 空白分析器( Whitespace Analyzer ) 停止分析器(Stop Analyzer) 关键词分析器( Keyword Analyzer ) 模式分析器( Pattern Analyzer ) 语言分析器( Language Analyzers ) 指纹分析器( Fingerprint Analyzer )
摘要:我们建立一个网站或应用程序,并要添加搜索功能,但是想要完成搜索工作的创建
是非常困难的。我们希望搜索解决方案要运行速度快,我们希望能有一个零配置和一个完全 免费的搜索模式,我们希望能够简单地使用JSON通过HTTP来索引数据,我们希望我们的搜 索服务器始终可用,我们希望能够从一台开始并扩展到数百台,我们要实时搜索,我们要简 单的多租户,我们希望建立一个云的解决方案。因此我们利用Elasticsearch来解决所有这些 问题及可能出现的更多其它问题。
存储数据节点,提供建立索引和查询索引的服务
03 Client节点(node.master:false AND node.data:false)
又称coordinate节点和ingest节点,这些节点只负责处理用户请求,实现请求转 发,负载均衡等功能
04
write(写)/create(创建)操作实现原理
ElasticSearch
目录
Contents
Analyzer内部机 存储模型 制
节点分类 Write实现原理 Read实现原理
02
Analyzer内部机制
字符过滤器(character filter)
01
他们的任务实在分词前整理字符串,可以用来去掉HTML标签,或者将&转化成“and”
分词器(tokenization)
07
Read的实现原理
查询阶段(Query Phase) 获取阶段(Fetch Phase)
08
结束语
conclusion
概述: ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全
文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下 的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索, 稳定,可靠,快速,安装使用方便。
05
存储模型
设有两篇文章1和2
01
文章1的内容为:Tom lives in Guangzhou,I live in Guangzhou too
文章2的内容为:He once lived in Shanghai.
经过处理后(分词,过滤无用词,小写化): 02 文章1的所有关键词为:[tom] [live] [guangzhou] [i] [live] [guangzhou]
文章2的所有关键词为:[he] [live] [shanghai]
建立倒排索引
03 关键词 文章号 [出现频率] 出现位置
guangzhou 1
[2]
3,6
he
2
[1]
1
i
1
[1]
4
live
1
[2]
2,5
2
[1]
2
shanghai 2
[1]
3
tom
1
[1]
1
04
节点分类
01 默认节点(node.master:true AND node.data:true)
39
wenku.baidu.com
02 一个简单的分词器遇到空格和标点
的时候,会将文本拆成词条
Token过滤器(Token filtering)
03 最后,词条按顺序通过每个Token过
滤器,这个过程可能会改变词条 (例如小写化,删除无用词或增加 同义词)
04
Analyzer内部机制
04
内置分析器
01 02 03 04 05 06 07 08
默认值,既有成为主节点的资格,又可以存储数据,还可以处理客户端的请求
02 Master节点(node.master:true AND node.data:false)
有成为主节点的资格,可以参与选举,master节点负责维护整个集群状态并保证数据一致性
03 Data节点(node.master:false AND node.data:true)
标准分析器( Standard Analyzer ) 简单分析器( Simple Analyzer ) 空白分析器( Whitespace Analyzer ) 停止分析器(Stop Analyzer) 关键词分析器( Keyword Analyzer ) 模式分析器( Pattern Analyzer ) 语言分析器( Language Analyzers ) 指纹分析器( Fingerprint Analyzer )
摘要:我们建立一个网站或应用程序,并要添加搜索功能,但是想要完成搜索工作的创建
是非常困难的。我们希望搜索解决方案要运行速度快,我们希望能有一个零配置和一个完全 免费的搜索模式,我们希望能够简单地使用JSON通过HTTP来索引数据,我们希望我们的搜 索服务器始终可用,我们希望能够从一台开始并扩展到数百台,我们要实时搜索,我们要简 单的多租户,我们希望建立一个云的解决方案。因此我们利用Elasticsearch来解决所有这些 问题及可能出现的更多其它问题。
存储数据节点,提供建立索引和查询索引的服务
03 Client节点(node.master:false AND node.data:false)
又称coordinate节点和ingest节点,这些节点只负责处理用户请求,实现请求转 发,负载均衡等功能
04
write(写)/create(创建)操作实现原理
ElasticSearch
目录
Contents
Analyzer内部机 存储模型 制
节点分类 Write实现原理 Read实现原理
02
Analyzer内部机制
字符过滤器(character filter)
01
他们的任务实在分词前整理字符串,可以用来去掉HTML标签,或者将&转化成“and”
分词器(tokenization)
07
Read的实现原理
查询阶段(Query Phase) 获取阶段(Fetch Phase)
08
结束语
conclusion
概述: ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全
文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下 的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索, 稳定,可靠,快速,安装使用方便。
05
存储模型
设有两篇文章1和2
01
文章1的内容为:Tom lives in Guangzhou,I live in Guangzhou too
文章2的内容为:He once lived in Shanghai.
经过处理后(分词,过滤无用词,小写化): 02 文章1的所有关键词为:[tom] [live] [guangzhou] [i] [live] [guangzhou]