优秀的编程知识分享平台

网站首页 > 技术文章 正文

elasticsearch笔记(elasticsearch入门教程)

nanyue 2024-10-14 11:35:28 技术文章 5 ℃

=====================elasticsearch=====================

--特性

全文检索引擎,pb级数据,数百台服务器,基于lucene,

依赖文件系统缓存;冷热分离,冷数据放一个索引,热数据放一个索引;

分页使用scroll api,不做深度分页;

查询路由到对应的分片hash的方式,每个节点都可以处理读写请求,因为相同的路由公式,分片个数确定就不能再改,;

联合索引查询(skip list,bitset);

分词器(ik分词器,ansj分词器,);


----概念

cluster集群,node节点,shard分片,replia副本,

index索引--数据库,type类型--表,document文档--行,field字段--列,mapping--schema,


----------操作 restful api

query string搜索:/index/type/_serach?q=filed:value;

dsl搜索 domain specific language:/index/type/_serach {"query":{"match":{"field":"value"}}} ;

删除delete:;

检索所有文档:/index/type/_serach,;

检索某个文档:/index/type/id,/index/type/id/_source,;

检索某些字段:/index/type/id?_source=field1,field2;

创建文档/更新整个文档:put /index/type/id;

局部更新:post /index/type/id/_update ;

-----------------------------------

收缩索引shrink index;拆分索引split index;rollover index别名滚动指向新创建的索引;

index template;hot-warm架构,shard allocation filtering;索引隔离,多集群,

-----------------------------


---节点分类

主节点master node,数据节点data node,客户端节点 client node,部落节点tribe node,

协调节点coordinating node,;


---集群状态

green,;

yellow 至少一个副本分片不能正常工作,;

red 至少一个分片的主分片和全部副本分片都不可正常工作,;


--共识算法

zen discovery,gossip 的形式实现了单播unicast,一对一的通信方式,;


---并发控制

乐观并发控制occ ,optmistic concurrency control,解决写-写冲突的无锁并发控制,在提交事务前检查数据有没有变化,没有变化就提交,有变化就放弃并重试,适合低数据竞争且写冲突比较少,;

多版本并发控制 mvcc ,multi-version concurrency control,解决读-写冲突的无锁并发控制,;


--一致性

3种设置来判断是否允许写,one 主分片可用,all 主分片和副分片都可用,quorum大部分分片可用,;主分片和备分片同时写成功才返回ack,sync默认同步;

事务日志translog,延迟写入策略,512m或30分钟触发一次刷新flush,将文件系统缓存中的数据刷新到磁盘,;


---脑裂

主节点通过ping其他节点,检测是否可用;非主节点也通过ping检测主节点是否可用,;


--集群写索引流程

客户端向协调节点发送写请求,;

协调节点定位文档所属分片,转发到主分片节点,;

主分片节点执行请求,并行转发到副本节点,副本节点ack成功,则主节点向协调节点ack成功,;


--集群搜索流程

客户端查询协调节点,;

协调节点根据routingid定位分片,将请求转发到任意一个分片副本,;

分片副本执行查询,返回结果给协调节点,;

协调节点进行二次排序/全排序才返回结果;


=========lucene 信息检索IR库 information retrieval=======

--特性

词典和倒排表是lucene中很重要的两种数据结构,是实现快速检索的重要基石,;

倒排表;分段的存储模式,几乎完全避免了锁,大大提升读写性能;


---模块

analysis语法分析语言处理,index索引的创建,store索引的读写抽象出和平台文件系统无关的存储,

queryparser语法分析把查询语句生成lucene底层可以识别的条件,search对索引的搜索,

similarity相关性打分和排序,


----概念

term词条:索引里最小的存储和查询单元,

term index:trie树 共享前缀;fst 既共享前缀也共享后缀,更加节省空间,更好的数据压缩和查询效率,lucene的默认词典数据结构,;

term dictionary词典:词典数据结构-fst finite-state transducer更高的数据压缩率和查询效率,

posting list倒排表:记录某个词在那些文档出现过,;

正向信息:原始文档信息;

segment段:最小的独立存储单元,有不变性只能读不能写,;

段在内存中时只有写权限,一旦拥有了提交点就只有只读权限,lucene是准实时的搜索引擎;

事务日志,段合并策略,;

文本相似度算法:基于向量空间模型,基于概率,;

最近发表
标签列表