现在的位置: 首页 > 综合 > 正文

Lucene之删除索引(备忘)

2012年11月29日 ⁄ 综合 ⁄ 共 1142字 ⁄ 字号 评论关闭

    如果想删除Lucene索引,常常采用的类是IndexWriter,下图描述IndexWriter类删除索引的方法:

 

      ok,我来测试这个deleteAll方法是什么效果。首先创建一些索引文件(具体的方法和代码我就此省略),索引文件可以组织结构图如下:

      接下来,我们来将索引删除,以前删除索引我都是手动删除,汗~~~~,因为那些索引创建了以后几乎都不改变,因为那些数据都是不动的兴趣点数据。所以我当时也没有写删除索引的方法。下面是我测试删除索引的方法:

View Code

 1 public void  testDeleteIndex(){
2 POIConfig config=POIConfigFactory.create();
3 config.setIndexFilePath(POIConfig.DEFAULT_REGION_LUCENE_INDEX_PATH);
4 config.setIndexFields(new String[]{"NAME","USERNAME","ADDRESS","WEIGHT"});
5 config.setQueryFields(new String[]{"NAME","ADDRESS","WEIGHT"});
6 config.setTableName("t_Goverment");
7 try {
8 IndexWriter writer=new IndexWriter(FSDirectory.open(new File(config.getIndexFilePath())),new StandardAnalyzer(Version.LUCENE_CURRENT),MaxFieldLength.UNLIMITED);
9 writer.deleteAll();
10 System.out.println("删除完成...");
11 //writer.commit();
12 writer.close();
13 } catch (CorruptIndexException e) {
14 // TODO Auto-generated catch block
15 e.printStackTrace();
16 } catch (LockObtainFailedException e) {
17 // TODO Auto-generated catch block
18 e.printStackTrace();
19 } catch (IOException e) {
20 // TODO Auto-generated catch block
21 e.printStackTrace();
22 }
23 };

      来看看删除索引有什么效果,是不是全部的文件都删除了?

 

      怎么还剩下两个文件没有删除呢?到底是什么原因,继续试试其他方法吧!

 

【上篇】
【下篇】

抱歉!评论已关闭.