lucene里删除不了索引请帮忙看看

package MyTest;

import org.apache.lucene.index.*;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.analysis.standard.*;
import org.apache.lucene.document.*;
import java.io.*;

public class IndexDelete {

public int deleteRecords(String field, String text) {
int delete = 0;
try {
//要删除索引的目录
File files = new File("D:/java/myprojs/Lucene/myindex");
Directory directory = FSDirectory.getDirectory(files, false);
Term term = new Term(field, text);
IndexReader reader = IndexReader.open(directory);
//这里记得要先解锁
IndexReader.unlock(directory);
int i=delete = reader.delete(term);
//显示被删除索引的数量
System.out.println("index delete :"+i);
//记得关闭,否则删除不会被同步到索引文件中
reader.close();
//关闭目录
directory.close();
}
catch (IOException ex) {
ex.printStackTrace();
}
return delete;
}

public static void main(String args[]){

IndexDelete indexDelete=new IndexDelete();
indexDelete.deleteRecords("path","D:/java/myprojs/Lucene/myindex/2.txt");
}
}
到底是哪出错了啊?

现在可以删除了但又遇到一点问题 麻烦帮我看看
1 原来是路进不对 我建立索引的时候是d:\1\1.txt 我删除给的是d:/1/1.txt
我按content删除就可以OK了 在JAVA里怎么可以输入d:\1\1.txt这种格式的路进呢? 我用的eclipse开发工具直接d:\1\1.txt写就提示转意字符错误

2。还有个非常奇怪的问题 就是 我检索时按"content" "小波" 可以找到数据 但删除时却找不到 但换成英文时也是有的找的到 有的找不到 请问这是什么原因啊?

但删除时 按"content" "小" 就可以把数据删除掉 真奇怪啊? 难到删除时的切词个 检索时的 不一样吗?

顶啊

你那个路径的问题,Java中“\”是转义字符,所以你要想输入“d:\1\1.txt”这种格式的路径,只要多加一个斜杠就可以了“d:\\1\\1.txt”

你那个删除索引的问题,与你开始创建索引时使用的分词有关,创建索引的时候,已经用你指定的分词将关键字切开,并存储到磁盘上,所以当你再次用原关键字进行匹配删除的时候,就找不到这个关键词了,你可以在删除的时候,先把要删除的关键词用你创建索引时的分词进行切分,然后再传进去按照切分后的关键词进行删除就没问题了。