ES-核心概念

1. Lucene简介
Lucene是一个成熟的全文检索库,由Java语言编写,具有高性能、可伸缩的特点,并且开源、免费。
Lucene的作者Doug Cutting是资深的的全文检索专家,Lucene最开始发布在他本人的主页上,2001年10月贡献给Apache,成为Apache基金会的一个子项目。
Lucene是一个IR库(Information Retrieval library)。后来才由Shay Banon在其基础上开发了Elasticsearch 。

2. 什么是搜索引擎?
全文搜索引擎
自然语言处理(NLP)、爬虫、网页处理、大数据处理
如谷歌、百度、搜狗、必应等等。

垂直搜索引擎
有明确搜索目的的搜索行为。
各大电商网站、OA、站内搜索、视频网站等。

数据库的组成结构
在这里插入图片描述
关系数据库:MySQL、Oracle、SQL Server、PostgreSQL
NoSql:Redis、Memcached、MongoDB
搜索:Elasticsearch、Solr、Splunk

MySQL的索引结构
B-Trees
在这里插入图片描述
B+Trees
在这里插入图片描述
MySQL索引能解决大数据检索的问题吗?
1、索引往往字段很长,如果使用B+trees,树可能很深,IO很可怕
2、索引可能会失效
3、精准度差

3. Elasticsearch核心概念
(1)节点
每个节点就是一个Elasticsearch的实例
一个节点≠一台服务器

(2)节点角色
master:候选节点
data:数据节点
data_content:数据内容节点
data_hot:热节点
data_warm:索引不再定期更新,但仍可查询
data_code:冷节点,只读索引
Ingest:预处理节点,作用类似于Logstash中的Filter
ml:机器学习节点
remote_cluster_client:候选客户端节点
transform:转换节点
voting_only:仅投票节点

(3)分片
一个索引包含一个或多个分片,在7.0之前默认五个主分片,每个主分片一个副本;在7.0之后默认一个主分片。副本可以在索引创建之后修改数量,但是主分片的数量一旦确定不可修改,只能创建索引

每个分片都是一个Lucene实例,有完整的创建索引和处理请求的能力

ES会自动在nodes上做分片均衡

一个doc不可能同时存在于多个主分片中,但是当每个主分片的副本数量不为一时,可以同时存在于多个副本中。

每个主分片和其副本分片不能同时存在于同一个节点上,所以最低的可用配置是两个节点互为主备。

(4)集群
原生分布式
一个节点≠一台服务器

集群状态
健康值状态

Green:所有Primary和Replica均为active,集群健康

Yellow:至少一个Replica不可用,但是所有Primary均为active,数据仍然是可以保证完整性的。

Red:至少有一个Primary为不可用状态,数据不完整,集群不可用。

健康值检查

_cat/health

_cluster/health

(5)索引
全文检索:索引系统通过扫描文章中的每一个词,对其创建索引,指明在文章中出现的次数和位置,当用户查询时,索引系统就会根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式
在这里插入图片描述
倒排索引深入解读

倒排索引的原理
在这里插入图片描述
倒排索引的数据结构
在这里插入图片描述
倒排索引核心算法

倒排表的压缩算法
FOR:Frame Of Reference
在这里插入图片描述
RBM:RoaringBitmap

在这里插入图片描述
词项索引的检索原理
FST:Finit State Transducers

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值