lucene.net逻辑存储结构

  词在倒排索引中是最小的单位,在Lucene.Net中衡量单位是Term,由N个Term构成了Filed,而又有N个Filed组成了Document,N个Document又会组成一个Segment,N个Segment会被写到Lucene.Net的文件系统。文件系统留到后面再讲,因为Lucene.Net自己实现了自己的文件系统,而这个系统的最小单位由3个文件组成,可以放到一个目录下,也可以放到内存中。总的来说Lucene.Net的文件系统可以理解为一个个的文件,在Windows下就是一个目录,里面包含了三个文件,但是从Lucene.Net的逻辑上来说,这就是一个文件。然后文件里的文本分词N个章节,那就是Segment,每个段落又会有N个段落(Document),段落里的每句话就是Filed,而Term就是每个字。和我们处理习惯很像不是吗?而其中最重要的就是Term,其他都是为它排版用的。

  而这个索引相对于分词,也可以用另外一个类来衡量,那就是——Token,是不是很熟悉?Term和Token的文本是一样的,只是记录的关于这个文本的属性不一样。

  前面写到了两次写入索引的操作,代码大同小异。都是先建立一个分词器,然后把分词器交给IndexWriter。接着创建N个Document,往Docuemnt里填充Field,再把Document交给IndexWriter操作,就完成了整个索引过程。关于Segment的处理被黑箱子掉了,而Term的处理也仅仅能从分词器看到个大概。

posted @ 2009-11-26 15:08  潇潇息一去不复返  阅读(476)  评论(0编辑  收藏  举报
努力才能前进,勤耕博客才能看远