es---Elasticsearch搜索引擎
一:ES的功能:
1.分布式:
因为是分布式的,所以是高可靠行,易于管理,可以扩展到上百台服务器,处理PB级别的数据
(2019-03-04挖坑:如何实现分布式的,配置和实现的算法等)
2.处理数据的形式
能处理结构化,非结构化,时间序列等数据
3.实时文件存储,并将每一个字段都编入索引,使其可以被搜索
(2019-03-04挖坑:字段索引的优化算法,保存形式 k-v)
4.它可以快速地储存、搜索和分析海量数据
(2019-03-04挖坑:如何实现的?)
二:重要概念
1.集群:Cluster--单个服务器节点可用,为了高可用性(一个挂了,其他的顶上),容错性(互相备份,防止某一个节点存一半网挂了等非可预见的错误,区别于容灾性),处理大型数据集(就大数据)然后就弄多点,即多个节点凑一起就是集群。
2.分片:Shard--集群的应用之一:大量数据,单个节点受限(内存,磁盘,响应速度),一个数据分拆成多个分片,放在不同的节点(节点服务器),索引分部在多个分片上,es把请求发送给各个分片,把结果整合在一起,对于调用es的应用程序来说,并不知道进行分片查询(2019-03-04挖坑:分片的策略)
3.副本:Replia--高可用,容灾和处理速度的一大解决方案,以分片为基本单位进行复制,存在不同的服务器,每个分片有0或者多个副本,其中一个当做主分片,用来修改索引其他的为副本;当主丢失(不可用),集群将副提升为主(2019-03-04挖坑:主副选择策略)
4.段:Segment--倒排索引,每个分片中包含多个段,汇总多个段的查询结果作为分片查询结果返回
5.全文检索:对于文章进行索引,根据词义进行分词(有专门的分类工具)把句子当基本单位(2019-03-04挖坑:如何进行基本的单位划分,document),词当索引,搜索这个词就可以搜索整个句子;如:阿里巴巴与四十大盗一起乘着海盗船去加勒比海看加勒比海盗大战疯狂外星人;把“阿里巴巴”当索引,可以搜索出整个句子;
三:ES和SQL的对比图
数据 | 索引 |
表 | 分类/分片 |
列 | 记录 |
行 | 字段/字词 |
数据库对象集合 | 映射 |
索引 | 所有都可以当索引,即字符串/结构化数据/时间类型 |
sql语言 | DSL |
查询 | http |
更新 | http |
四:节点策略--2*2四种
elasticSearch的配置文件中有2个参数:node.master和node.data
https://blog.csdn.net/zx711166/article/details/77838566
五:锁
悲观:每个线程锁死,其他线程等待,优点:不重复操作,方便,不需要额外操作,缺点:容易卡死,并发低,
乐观:都可以操作,但要对版本号,优点:不卡死,并发高,缺点:大量重复操作
六:数据类型
七:排序索引
正:id-->文档-->单词====》结果返回
倒:单词-->id-->文档====》结果返回