做合并的初衷是想先按照分类先建立相应索引文件,一个分类一个分类重建速度上比较快,而且影响面比较小,然后通过合并的方式,建立大的索引数据文件。因为合并的速度还是很快的。
IndexWriter indexWriter = null;
try {
Directory index1 = FSDirectory.open(new File(
"E:\\1"));
Directory index2 = FSDirectory.open(new File(
"E:\\2"));
Directory merged = FSDirectory.open(new File(
"E:\\merged"));
IndexWriter writer =new IndexWriter(merged,analyzer(选用自己的分词器),true(删除该文件目录原来的索引文件,不想删用false),IndexWriter.MaxFieldLength.UNLIMITED);
//writer.setInfoStream(true ? System.out : null);
writer.addIndexes(new Directory[]{index1, index2});
writer.optimize();
writer.close();
} catch (Exception e) {
System.out.println("合并索引出错!");
e.printStackTrace();
} finally {
try {
if (indexWriter != null)
indexWriter.close();
} catch (Exception e) {
}
}
IndexWriter indexWriter = null;
try {
Directory index1 = FSDirectory.open(new File(
"E:\\1"));
Directory index2 = FSDirectory.open(new File(
"E:\\2"));
Directory merged = FSDirectory.open(new File(
"E:\\merged"));
IndexWriter writer =new IndexWriter(merged,analyzer(选用自己的分词器),true(删除该文件目录原来的索引文件,不想删用false),IndexWriter.MaxFieldLength.UNLIMITED);
//writer.setInfoStream(true ? System.out : null);
writer.addIndexes(new Directory[]{index1, index2});
writer.optimize();
writer.close();
} catch (Exception e) {
System.out.println("合并索引出错!");
e.printStackTrace();
} finally {
try {
if (indexWriter != null)
indexWriter.close();
} catch (Exception e) {
}
}