资讯详情

Lucene 倒排索fst引原理与实现

整理以下博客

1Lucene 4.X 倒排索引原理与实现: (3) Term Dictionary和Index文件 (FST详细解析)

https://www.cnblogs.com/forfuture1978/p/3945755.html

2 关于Lucene的词典FST深入剖析

https://www.shenyanchao.cn/blog/2018/12/04/lucene-fst/

FST类似一种TRIE树。

使用FSM(Finite State Machines)作为数据结构 FSM(Finite State Machines)有限状态机: 表示状态有限(State)在这些状态之间收集和转移和动作的数学模型。其中一个状态标记为开始状态,0个或更多的状态标记为final状态。 一个FSM同时只有一个状态。FSM它非常通用,可以用来表示各种处理过程。FSM描述小猫的一天。

总结 FST,不仅可以共享前缀,还可以共享后缀。不仅可以判断搜索key是否存在也可以给出响应输入output。 它最大限度地优化了时间复杂性和空间复杂性,使之Lucene能够将Term Dictionary内存完全加载,定位快Term找到响应的output(posting倒排列表)

场景如下:

自动联想:suggester charFilter: mappingcharFilter 同义词过滤器 hunspell拼写检查词典

3Lucene BKD树-动态磁盘优化BSP树

https://www.shenyanchao.cn/blog/2018/12/04/lucene-bkd/

4FST(一)Lucene 8.4.0

flag ??由于构建FST之后,所有的信息都存在current[ ]在数组中,这个过程实际上是一个编码过程,需要在构建阶段生成flag,在阅读阶段,根据flag解码值

https://www.amazingkoala.com.cn/Lucene/yasuocunchu/2019/0220/35.html

链接备份:down

5FST(二)(Lucene 8.4.0)

fst的解析

https://www.amazingkoala.com.cn/Lucene/yasuocunchu/2020/1009/168.html

6 lucene字典实现原理

https://www.cnblogs.com/LBSer/p/4119841.html

下面简单描述一下FST结构过程(动态工具演示:http://examples.mikemccandless.com/fst.py?terms=&cmd=Build it!)

许多数据结构可以完成字典功能,总结如下。

数据结构 优缺点
排序列表Array/List 采用二分法搜索,不平衡
HashMap/TreeMap 性能高,内存消耗大,几乎是原始数据的三倍
Skip List 跳跃表可以快速找到单词lucene、redis、Hbase均有实现。相对于TreeMap特别适用于高并发场景(Skip List介绍)
Trie 适用于英文词典。如果系统中有大量字符串,且这些字符串基本上没有公共前缀,则相应trie树将非常消耗内存(数据结构)trie树)
Double Array Trie 适用于中文词典,内存占用小,很多分词工具都采用这种算法(深入双数组Trie)
Ternary Search Tree 每一棵三叉树node有三个节点,具有节省空间和快速查询的优点(Ternary Search Tree)
Finite State Transducers (FST) 有限状态转移机,Lucene 4实现开源,广泛使用

7Lucene学习总结七:Lucene搜索过程分析(5)

https://www.cnblogs.com/forfuture1978/archive/2010/04/04/1704258.html

在得到了Scorer对象树以及SumScorer对象树后,便是倒排表的合并以及打分计算的过程。

8腾讯万亿级 Elasticsearch 提高技术解密效率

https://zhuanlan.zhihu.com/p/146083622

9Lucene FST

https://blog.csdn.net/zx2011302580235/article/details/88594342

Lucene-FST-1 齐天英才

https://zhuanlan.zhihu.com/p/354203255

时间序列数据库的秘密 (2)-索引

https://www.infoq.cn/news/database-timestamp-02

总结:配合官方文档看更省事

附录:

霍夫曼树https://www.bilibili.com/video/BV1MK411j7CR

霍夫曼编码

https://www.bilibili.com/video/BV1ke411s7Nk?from=search&seid=8123455040366095459

https://www.bilibili.com/video/BV1ri4y1t7VH?from=search&seid=8123455040366095459

标签: 荔波智能电容器fst

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台