网站首页 > 技术文章 正文
=====================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是准实时的搜索引擎;
事务日志,段合并策略,;
文本相似度算法:基于向量空间模型,基于概率,;
猜你喜欢
- 2024-10-14 Excel表格太大时,怎么打印到一页上?
- 2024-10-14 写给Java应用开发者的Elasticsearch调优手册
- 2024-10-14 Excel表格太大时,怎么打印到一页上?收藏
- 2024-10-14 Excel中如何设置自动分页打印(excel表格怎么设置分页打印)
- 2024-10-14 还在浪费A4纸?按下Excel这个按钮,所有内容即可打印在同一页
- 2024-10-14 滑动页面时的控件设计规范——吸底&锚点
- 2024-10-14 ElasticSearch优化点简述(elasticsearch集群优化)
- 2024-10-14 一组Excel打印技巧,实用就好(excel打印技巧大全)
- 2024-10-14 打印设置用得好,天天追着幸福跑(打印基本设置)
- 2024-10-14 VBA实用代码赏析之八:页面、日期函数及选择的操作
- 最近发表
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- sqlset (64)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)