惠州网站制作询问薇,做网站需要注册的那种,企业网站推广营销,朝阳网站建设公司电话简介
Elasticsearch是一个基于Lucene的实际的分布式搜索和分析引擎。设计用于云计算中#xff0c;能够达到近实时搜索#xff0c;稳定#xff0c;可靠#xff0c;快速#xff0c;安装使用方便。基于RESTful接口。
官网地址#xff1a;Elasticsearch 平台 — 大规模查找…简介
Elasticsearch是一个基于Lucene的实际的分布式搜索和分析引擎。设计用于云计算中能够达到近实时搜索稳定可靠快速安装使用方便。基于RESTful接口。
官网地址Elasticsearch 平台 — 大规模查找实时答案 | Elastic ES与solr的对比
接口 类似webservice的接口 solr REST风格的访问接口 es
分布式存储 solrCloud solr4.x才支持 es是为分布式而生的
支持的格式 solr xml json es json 倒排索引
lucene
例如我们有两个文档
The quick brown fox jumped over the lazy dog
Quick brown foxed leap over lazy dogs in summer
我们首先将每个文档进行分词创建一个对唯一词语有序的列表
对每个词在哪些文档中出现过的文档列表。 如右图所示
Doc_1
The quick brown fox jumped over the lazy dog
Doc_2
Quick brown foxed leap over lazy dogs in summer 现在我们查询quick brown我们只需要知道这个词在哪些文档出现过
如果我们使用简单的相似性算法比如说将每个文档匹配的词语数相加我们就能看出来第一个文档更加匹配比第二个文档更加符合我们的查询条件quick brown。 优化
1、Quick可以全小写则和quick一样
2、foxes转换为原型fox。dogs变为dog
3、jumped和leap是同义词都看成jump
倒排索引变为
此时如果我们在将查询条件使用相同的流程进行转换则两个文档都能匹配上了。
进行分词和同义词等操作称为“分析”。 倒排索引
关键字 对应的文档 每个文档的tf-idf的值相关度得分 每个文档中关键字出现的位置以及偏移量为了做高亮
Hello doc1:10:56~60,doc2:11:56~60,doc3:9:56~60,doc4:4:56~60
word doc1:10:56~60,doc2:11:56~60,doc3:9:56~60,doc4:4:56~60
tom doc1:10:56~60,doc2:11:56~60,doc3:9:56~60,doc4:4:56~60
hadoop doc1:10:56~60,doc2:11:56~60,doc3:9:56~60,doc4:4:56~60
一个HTML页面
lucene的倒排索引占文档的20%~30%
100GB 20G~30G
索引的过程
获取文档并将文档进行分词
计算每个词的相关程度
计算每个词在词条中的位置和偏移量
。。。
搜索的过程
获取用户的输入
分词
到倒排索引中对词语进行查找并按照词语相关度做倒序排列
将结果返回给用户。
ES优点了解
分布式ES的自动发现机制会识别新增的节点并重新平衡分配数据。全文检索ES后台使用Lucene提供全文检索自带多语言支持、强大的查询语言、地理位置支持、上下文感知的建议、自动完成和搜索片段近实时搜索和分析数据从进入ES到能够搜索到是近实时的。除了搜索ES也可以进行聚合分析操作。高可用ES会自动发现新的或失败的节点重组和重新平衡数据确保数据是安全的和可访问的。模式自由ES的动态Mapping机制可以自动检测数据的结构和类型创建索引并使数据可搜索。RESTful API几乎任何操作都可以使用一个简单的RESTful APIJSON基于HTTP请求来实现客户端也可以使用多种编程语言。
应用场景了解
站内搜索京东、淘宝、论坛等的站内搜索NoSQL数据库ES读写性能优于MongoDB同时也支持地理位置查询日志分析日志分析由实时日志分析平台ELK完成能够对日志进行集中的收集、存储、搜索、分析、监控以及可视化。
如何索引文档理解
为新增的文档创建倒排索引
默认情况下当索引一篇文档的时候系统首先根据文档ID的散列值选择一个主分片并将文档发送到该主分片。这份主分片可能位于另一个节点。然后文档被发送到该主分片的所有副本分片进行索引副本分片和主分片之间保持数据的同步。 如何检索文档理解 在默认情况下搜索请求通过round-robin轮询机制选中主分片和副本分片其假设集群中所有的节点是同样快的。
接收客户端请求的分片节点会创建一个空的优先级队列并且配置好分页参数from与size。
该节点将检索请求发送给该索引中个每一个shard无论是primary还是replica可以构成一个完整的索引数据。每个shard在本地执行检索并将结果添加到本地优先级队列中。
每个shard返回本地优先级序列中所记录的_id与sort值并发送给接收客户端请求的节点该节点将这些值合并到自己的本地的优先级队列中并做全局的排序返回给客户端。 脑裂问题理解
1. 网络由于是内网通信网络通信问题造成某些节点认为master死掉而另选master的可能性较小
2. 节点负载由于master节点与data节点都是混合在一起的所以当工作节点的负载较大时导致对应的ES实例停止响应而这台服务器如果正充当着master节点的身份那么一部分节点就会认为这个master节点失效了故重新选举新的节点这时就出现了脑裂同时由于data节点上ES进程占用的内存较大较大规模的内存回收操作也能造成ES进程失去响应。fullGC stop the world 解决方式
主节点
node.master: true
node.data: false
从节点
node.master: false
node.data: true
所有节点
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: [“master”, “slave1”, “slave2]
discovery.zen.minimum_master_nodes: 2 单播点对点通信不是吼一嗓子而是悄悄的问谁是我兄弟
多播吼一嗓子谁是我兄弟大家可以同时听到