IndexWriter 是一个非常重要的工具。建立索引必须从它开始。而且,从它的构造函数开始。
Document 和 Field 是 Lucene 中两个最重要的概念。在建立索引的时候,也就是实例化一个索引器 IndexWriter 的之前,必须通过已经建立好的 Document 逻辑文件,将 Document 的对象添加到 IndexWriter 实例中,才能算是建立索引。
Document 汇集数据源,这个数据源是通过 Field 来构造的。构造好 Field 之后,将每个 Field 对象加入到 Document 之中,可以通过 Document 来管理 Field ,然后将聚集的 Document 加入到 IndexWriter 中,建立索引,写入指定的 Directory ,为检索做准备。
运行程序,可以在目录 E:/Lucene/myindex 下看到生成的索引文件,一共有 4 个文件:
_0.cfs
_0.cfx
segments.gen
segments_2
其中 segments_2 是一个索引段。前边 2 个我初学,也不知道啥意思。
同时,可以在控制台上看到输出结果:
Document<indexed,tokenized<contents:java.io.FileReader@1add2dd> stored,indexed,tokenized<filename:D:/test/mysmall/output0.txt>>
Document<indexed,tokenized<contents:java.io.FileReader@eee36c> stored,indexed,tokenized<filename:D:/test/mysmall/output1.txt>>
Document<indexed,tokenized<contents:java.io.FileReader@194df86> stored,indexed,tokenized<filename:D:/test/mysmall/output10.txt>>
Document<indexed,tokenized<contents:java.io.FileReader@defa1a> stored,indexed,tokenized<filename:D:/test/mysmall/output100.txt>>
Document<indexed,tokenized<contents:java.io.FileReader@11a698a> stored,indexed,tokenized<filename:D:/test/mysmall/output101.txt>>
Document<indexed,tokenized<contents:java.io.FileReader@194ca6c> stored,indexed,tokenized<filename:D:/test/mysmall/output102.txt>>
Document<indexed,tokenized<contents:java.io.FileReader@47858e> stored,indexed,tokenized<filename:D:/test/mysmall/output103.txt>>
Document<indexed,tokenized<contents:java.io.FileReader@19134f4> stored,indexed,tokenized<filename:D:/test/mysmall/output104.txt>>