根据例子里面的IndexReaer.delete(Term term)方法,建立Term的方法是Term(String name, String value)可以定位一个文件索引的位置,从而删除这个索引,但是我试过后,发现不能删除,索引依旧存在,真是急死我了import org.apache.lucene.analysis.cn.ChineseAnalyzer;
import org.apache.lucene.index.*;import java.io.File;public class DeleteIndex {
  public static void main(String args[]) throws Exception {
    //delete a index file
    IndexReader indexReader = IndexReader.open("index");
    File file = new File("D:\\lucene\\text\\aa.txt");
    String path = file.getPath().toString();
    System.out.println(path);
    if (file.exists()) {
      Term term = new Term("path", path);
      int deleted = indexReader.delete(term);
      System.out.println(deleted);//返回的总是0,可见是失败的标志
    } else {
      System.out.println("File is not exists!");
    }
    indexReader.close();
  }
}

解决方案 »

  1.   

    帮你upup吧。lucene倒是看过,不过没实际使用。
      

  2.   

    谢谢conning333(chen),我很感动,继续up,怎么就是没人解决呢!!!
      

  3.   


    "path"好像必须是KeyWord
    document.add(Field.Keyword("path", strPath));
      

  4.   

    IndexReader.indexExists(File file)的方法是判断索引文件/目录是否存在的方法,开始搞错了,明白了,多谢walkfish的帮助,现在可以删除索引了,但是还是存在一个问题就是如何判断我要加入的一个索引是否已经存在在这个索引目录中.我试了很多方法都不行啊.