Lucene:IndexWriterConfig的设置
实例代码如下所示:
1 Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_36); 2 IndexWriterConfig iwconf = new IndexWriterConfig(Version.LUCENE_36, analyzer); 3 iwconf.setOpenMode(IndexWriterConfig.OpenMode.CREATE); 4 IndexWriter indexWriter = new IndexWriter(indexDir, iwconf);
注意: StandardAnalyzer是lucene中内置的“标准分析器”,可以做如下功能:
- 对原有句子按照空格进行了分词
- 所有的大写字母都可以能转换为小写的字母
- 可以去掉一些没有用处的单词,例如"is","the","are"等单词,也删除了所有的标点
在Lucene3.X版本中,与前几个版本的不同的地方包括了IndexWriter实例的初始化,其中需要用到IndexWriterConfig这个类。另外,从Lucene的API中可以看到目前IndexWriter类最新的构造函数需要用到IndexWriterConfig这个类(其它的构造函数不建议使用,被废弃掉了),其中需要设置OpenMode属性:
1 iwconf.setOpenMode(OpenMode.CREATE); 2 //或 3 iwconf.setOpenMode(OpenMode.APPEND); 4 //或 5 iwconf.setOpenMode(OpenMode.CREATE_OR_APPEND);
注意:这行代码设置了存放索引的文件夹将以覆盖或者新建的方式建立。如果没有这样设置,并且在原索引文件夹中索引没有被删除的情况下,新的索引文件将会append到原来索引文件之后,这样会导致索引结果发生错误。