lucene
文章平均质量分 77
chengqianl
lucene solr
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
lucene indexwriter的相关类图
最近在学习lucene,看的比较迷糊,所以 就把类图画了原创 2010-08-26 10:16:32 · 219 阅读 · 0 评论 -
DocumentsWriterThreadState 创建过程序列图
摘自org.apache.lucene.index.DocumentsWriter.DefaultIndexingChain.getChain() 注释 /* This is the current indexing chain: DocConsumer / DocConsumerPerThread --> code: DocFieldP...原创 2010-08-26 15:04:42 · 247 阅读 · 0 评论 -
DocFieldProcessorPerField 创建的过程序列图
document的写入是通过DocFieldProcessorPerThread类做的,实际上在lucene的文件里面(_x.fdx,_x.fdt,_x.fnm)没有document的概念,存储的是filed属性和值,filed的值是存储在_x.fdt文件里面 ,field的属性是存在在_x.fnm,(属性就是是否分词,是否存储等等) 而field的写入是通过DocFieldProcessorPe...原创 2010-08-26 15:19:01 · 164 阅读 · 0 评论 -
DefaultSkipListReader查找docId
DefaultSkipListReader查找docId MultiLevelSkipListReader public MultiLevelSkipListReader(IndexInput skipStream, int maxSkipLevels, int skipInterval) { /**每个层的文件文件的IndexInput读取对象,是通过定位到每个文件的相对应的skiptab...原创 2010-09-02 15:33:18 · 226 阅读 · 0 评论 -
lucene的排序和缓存的应用
Lucene的排序是通过FieldComparator及其子类实现的,以StringOrdValComparator作为例子详细说明lucene的排序的基于缓存FieldCache实现。 思路:用一个数组保存某个filed字段对应的所有的document的最大的一个term。这个数组的index就是docId,值对应所有这个filed所有term的数组的index StringOr...原创 2010-09-13 15:00:27 · 227 阅读 · 0 评论 -
多个term查询的步骤
多个term查询的步骤 分别查找每个term对应的结果 查询步骤 Term :a -----》tii-------》tis-------》frg 保存结果 --- TermScorer1 Term :b -----》tii-------》tis-------》frg 保存结果--- TermScorer2 得到结果集分别缓存在TermScorer二个数组里面...原创 2010-09-13 15:15:56 · 725 阅读 · 0 评论 -
创建IndexSearcher的时候到底做了哪些事情
大致的事情就是读取segment.gen文件,从这个文件里面的数据找出segments_x(x是下一个段的名字,是一个36进制的数)这个文件,读segments_x这个文件,因为segment_x记录的索引的segment的元数据信息,读取segment信息后,在分别初始化每个segment的reader对象SegmentReader,SegmentReader会利用内部类CoreReaders,...原创 2010-09-27 09:22:36 · 529 阅读 · 0 评论 -
OpenBitSet和OpenBitSetIterator
OpenBitSet和OpenBitSetIterator 算法的思想是用一个long的数组的index和这个这个数组的某个值的某一位表示一个数,如果是一个long数组,如果不存在重复的情况下,最大可达到64倍的压缩, 算法的实现过程以long OpenBitSet这个类实现的一个上面提到的记录数据的数组 public OpenBitSet(long numBits) { ...原创 2010-11-11 15:18:27 · 163 阅读 · 0 评论 -
OpenBitSet和OpenBitSetIterator在TermRangeQuery中的运用
OpenBitSet和OpenBitSetIterator在TermRangeQuery中的运用 在MultiTermQuery 的rewrite方法中,如果 if (pendingTerms.size() >= termCountLimit || docVisitCount >= docCountCutoff) 的就会使用MultiTermQueryWrapperFilter,如果查询...原创 2010-11-16 16:06:16 · 149 阅读 · 0 评论
分享