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

05-03-30 zhangbo198294
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");

}

}

到底是哪出错了啊?

zhangbo198294
2005-03-30 16:23
现在可以删除了但又遇到一点问题 麻烦帮我看看

1 原来是路进不对 我建立索引的时候是d:\1\1.txt 我删除给的是d:/1/1.txt

我按content删除就可以OK了 在JAVA里怎么可以输入d:\1\1.txt这种格式的路进呢? 我用的eclipse开发工具直接d:\1\1.txt写就提示转意字符错误

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

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

zhangbo198294
2005-03-31 14:21
顶啊

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

猜你喜欢
2Go 1 2 下一页