一、ES+Hbase解决的问题
- 实现【海量数据的存储】+【快速复杂查询的】解决方案
- 整合的基本原理
![在这里插入图片描述](https://img-blog.csdnimg.cn/28eb40977bda4baca1762baa62fd80c4.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAfuaYpQ==,size_20,color_FFFFFF,t_70,g_se,x_16)
二、ES核心原理
♦ Elasticsearch是一个实时的分布式【搜索和分析引擎】
♦ 它是对Lucene进行了封装,能够达到实时搜索,提供稳定 ,可靠,快速,等特点
![在这里插入图片描述](https://img-blog.csdnimg.cn/a35b1bf9be6442b7820c9f2038138b54.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAfuaYpQ==,size_20,color_FFFFFF,t_70,g_se,x_16)
2.1、Cluster(集群)
代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举
产生的,主从节点是对于集群内部来说的。 ES的一个概念就是去中心化,字面上理解就是无中
心节点,这 是对于集群外部来说的,因为从外部来看ES集群,在逻辑上是个 整体,你与任
何一个节点的通信和与整个ES集群通信是等价的。
主节点的职责是负责管理集群状态,包括管理分片的状态和副本的状态,以及节点的发现
和删除。
注意:
主节点不负责对数据的增删改查请求进行处理,只负责维 护集群的相关状态信息;
2.2、shards(分片)
代表索引分片,ES可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的
索引水平拆分成多个,分布到不同的 节点上。构成分布式搜索,提高性能和吞吐量。分片的
数量只能在创建索引库时指定,索引库创建后不能更改。
默认是一个索引库有5个分片)每个分片中最多存储 lnteger.MAXVALUE-128 条数据。
2.3、Replicas(副本)
代表索引分片的副本,副本的作用:一是提高系统的容错性,当 某个节点某个分片损坏
或丢失时可以从副本中恢复。二是提高ES 的查询效率,ES会自动对搜索请求进行负载均衡。
副本的数量可以随时修改。
注意:主分片和副本不会存在一个节点中
2.4、Recovery(恢复)
代表数据恢复或叫数据重新分布,ES在有节点加入或退出时会根据 机器的负载对索引分
片进行重新分配,挂掉的节点重新启动时也会 进行数据恢复
三、ElasticSeach的使用
可以通过RestAP操作或者SDK(JavaAPI)操作
使用 RestAPI 操作日 asticsearch
使用 JavaAPI 操作 Elasticseajch
四、ElasticSeach的分词
4.1、分词器作用
Analyzer (分词器)的作用是把一段文本中的词按一定规则进 行切分。对应的是
Analyzer类,这是一个抽象类,切分词的具 体规则是由子类实现的,所以对于不同的语
言,要用不同的分 词器。(也就是说不同的分词器分词的规则是不同的!)
在创建索引时会用到分词器,在搜索时也会用到分词器,这 两个地方要使用同一个
分词器,否则可能会搜索不出结果。
![在这里插入图片描述](https://img-blog.csdnimg.cn/577a5dd5e4034a78b65a25b4adcf05ed.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAfuaYpQ==,size_20,color_FFFFFF,t_70,g_se,x_16)
4.2、分词工作流程
1、切分关键词
2、去除停用词(的、了、是、a、an. the)
3、对于英文单词,把所有字母转为小写(搜索时不区分大小写)
几个重要的分得器
1 分词器分词方式
StandardAnalyzer 单字分词
ChineseAnalyzer 单字分词
CJKAnalyze 二分法分词
IKAnalyzer 词库分词
单字分词:”我们是中国人“效果:”我““们“”是““中一国…人”
二分法分词:按两个字进行切分。效果:“我们二”们是“ 、“是中二”中国“、“国人”。
词库分词:按某种算法构造词,然后去匹配已建好的词库集合,如果匹配到就切分出
来成为词语。通常词库分词被认为是最理想的中文分词算法。
![在这里插入图片描述](https://img-blog.csdnimg.cn/be4954bea7e640fa824492c5a637277d.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAfuaYpQ==,size_20,color_FFFFFF,t_70,g_se,x_16)
五、Hbase基本介绍
HBase - Hadoop Database:是一个高可靠、高性能、 面向列、可伸缩的NoSQL数据
库(Key-Value类型)
HBase基于H DFS作为其文件存储系统
HBase支持对海量数据的增删改查
![在这里插入图片描述](https://img-blog.csdnimg.cn/86b121c9251b48d9a5ca5e2c9f5babf7.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAfuaYpQ==,size_20,color_FFFFFF,t_70,g_se,x_16)