- 博客(8)
- 资源 (37)
- 收藏
- 关注
原创 Lucene源代码之DocumentWriter
首先我们先概念性地了解一下索引如何写入的。Lucene的索引文件是按照Document、Field、Term三个层面存了document,field,term的信息。一个文件系统必定存在着一组互逆的过程:写入,读取。检索系统也是一种文件系统,也存在互逆过程,有相关的类与之对应:1)写入→*Writer2)读取→*Reader标引过程我们着重描述*Writer类的功能,Lucene有
2008-11-30 14:51:00 2261
原创 Lucene源代码之SegmentInfo
首先还是来看看,SegmentInfo到底是干什么的吧:Segmentinfo是保存在SegmentInfos容器里面,它主要是记录每个segment的情况。还要引用前面的Segments_N文件格式图: 看到里面两个大的虚线框了吗,每一个虚线框就表示一个segment,里面的信息就是SegmentInfo需要处理(保存、写入)的数据,也就是它的属性,具体有SegName、SegSiz
2008-11-29 11:34:00 1783 1
原创 Lucene源代码之SegmentInfos容器
首先我们先了解一下什么是SegmentInfos;该类主要是对SegmentInfo进行管理的。在每次执行打开索引目录、打开索引文件、写入文件等等,都需要对SegmentInfos进行维护。因为SegmentInfos记录了对索引文件进行操作(如:建立索引、删除索引)而生成的一些索引文件格式、版本号的信息,所以每当索引文件有操作需求,都要从SegmentInfos中获取当前的一些详细记录,
2008-11-27 21:19:00 1868 2
原创 Lucene源代码之FieldInfos容器
FieldInfos是一个容器类,含有如下属性:static final byte IS_INDEXED = 0x1; static final byte STORE_TERMVECTOR = 0x2; static final byte STORE_POSITIONS_WITH_TERMVECTOR = 0x4; static final byte STORE_OFFSET_WITH
2008-11-27 14:02:00 1056
原创 Lucene源代码之信息索引
索引是什么?索引是一种数据存储和组织结构。逆常人之思维,lucene索引采用倒排文件索引构造索引系统。具体实现原理举例说明:假设有3篇文章,file1,file2,file3,文件内容如下: file1 (单词1,单词2,单词3,单词4....)file2 (单词a,单词b,单词c,单词d....)file3 (单词1,单词a,单词3,单词d....)建立的倒排索引就是这个
2008-11-26 20:18:00 1877
原创 Lucene源代码之构造自己的分词器
首先郑重声明:本分词器不是我自己写的,但对于中文分词很好。分词名称:TjuChineseAnalyzer.源代码如下:package org.apache.lucene.analysis.tjuchinese;import java.io.IOException;import java.io.Reader;import java.io.StringReader;
2008-11-15 18:20:00 1646
原创 Lucene源代码analysis之测试
以WhitespaceAnalyzer为例:测试的主函数为:package org.apache.lucene.analysis.test;import java.io.IOException;import java.io.StringReader;import org.apache.lucene.analysis.Analyzer;import o
2008-11-14 16:42:00 1016
原创 Lucene源代码之Analysis
Analysis包分析 Lucene中的Analysis包专门用于完成对于索引文件的分词.Lucene中的Token是一个非常重要的概念.首先理一下Analysis包下各个类之间的关系: 上面的基本上已经涵盖了所有的核心类了,但仍然缺少了一个独立ana
2008-11-13 22:06:00 2208
Lucene+Nutch搜索引擎 光盘源码
2008-11-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人