Lucene
小雨滴滴滴的童鞋
这个作者很懒,什么都没留下…
展开
-
Lucene随笔-BoomFilter布隆过滤器
lucene:6.5.1 简介 在luncene中布隆过滤器主要保存在.blm文件中,主要是用来判断特定的内容是否存在,比如在写入时判断文档id是否存在。此外,布隆过滤器只能判断特定内容肯定不存在,而不能得出肯定存在的结论。 实现 在luncene中不BloomFilter的具体实现主要是在FuzzySet。其入口为DefaultBloomFilterFactory,这里可以通过getSetForField函数获取一个布隆过滤器。这里的两个参数分别为 maxNumUniqueValues:可能存在的最大.原创 2020-06-15 12:25:48 · 751 阅读 · 0 评论 -
Lucene随笔-记录一下自动flush的触发条件
Luncene 6.5.1 在lucene中flush存在两种flush:主动flush与自动flush。那么在哪些情况下会触发自动flush呢? MaxBufferedDocs MaxBufferedDocs描述了索引信息被写入到磁盘前暂时缓存在内存中允许的文档最大数量,也就是每个DWPT缓存的最大文档数量,当一个DWPT中的文档数量超过这个值时会触发自动flush,该参数在建立IndexW...原创 2020-04-10 11:36:15 · 409 阅读 · 0 评论 -
Lucene随笔-Lucene的索引文件格式
Lucene 6.5.1 建立一个Lucene示例 数据写入 public class Writer { private static final String PATH = ""; public static void main(String[] args) throws Exception { String doc1 = "hello world"; ...原创 2019-12-17 11:51:44 · 494 阅读 · 0 评论 -
Lucene随笔-关于double类型转换成Long
Lucene: 6.5.1 在DocValue中存储数值类类型的数据时,往往会将double/float转换成Long进行存储。 其中可以参考Class NumbericUtils。我们以double2Long为示例: public static long doubleToSortableLong(double value) { return sortableDoubleBi...原创 2019-12-06 11:24:56 · 1569 阅读 · 0 评论 -
lucene随笔-FST(Finite State Transducer)有限状态传感器
lucene版本:6.5.1 有限状态传感器,FST(Finite State Transducer)在lucene中扮演着非常重要的一个角色,在4.0后的版本lucene大量使用了这种数据结构,主要是用于在庞大的字典中快速的定位term的位置。 那么为什么使用FST呢? 考虑到这样一个场景,在lucene中倒排索引是核心,而其带来的问题就是term的字典是非常大,如何在保证term查询效率的...原创 2019-11-14 10:44:27 · 2213 阅读 · 1 评论 -
Lucene随笔-全文检索基本原理
全文检索 目前,数据从类型上可以分为三类: 结构化数据 非结构化数据 半结构化数据 针对非结构化数据。最简单的全文检索算法就是顺序扫描法,很明显当文档量上升到一定数量时,代价极大。另一种即全文检索法,先对文档建立索引,然后根据索引进行查询。 倒排索引(inverted-index) 倒排表的结构很简单,本质上就是以词查文,简单的理解为一个HashMap机构, 其key为词term也就是文档中的...原创 2019-11-05 11:12:50 · 243 阅读 · 0 评论 -
Lunece源码-Analyzer
看一下官方给出的Analyer的定义 An Analyzer builds TokenStreams, which analyze text. It thus represents a policy for extracting index terms from text. 首先为了提升效率,在同一个线程中的Tokenream是可以复用的。在新建一个Analyer时候会指定复用的策略。 ...原创 2019-10-25 10:13:05 · 209 阅读 · 0 评论