lucene 索引删除

xieqingtao 2007-04-24 10:43:38
我创建文件的一个全文索引,以文件的路径作为关键字,如F:\javapath\java.txt,在创建索引和搜索时都可以成功。但是删除文件索引时以文件路径进行删除不能成功,以文件名可以。这是什么原因?
public boolean delIndex(String path) {
boolean flag = false;
try {
Directory directory = FSDirectory.getDirectory(this.dir);
IndexReader reader = IndexReader.open(directory);

Term term = new Term("path", path);
int deleted = reader.deleteDocuments(term);
LOG.info("-----------------" + deleted + "--" + path);
if (deleted > 0)
flag = true;
reader.close();
directory.close();

} catch (Exception e) {
System.out.println(" caught a " + e.getClass()
+ "\n with message: " + e.getMessage());
}

return flag;
}

public static void main(String args[]) {
FileIndex fi = new FileIndex();
String path = "F:\\javapath\\path.txt";
fi.delIndex(path);
}
...全文
419 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xieqingtao 2007-05-25
  • 打赏
  • 举报
回复
没找到合适的方法,我换了Term
YuLimin 2007-04-29
  • 打赏
  • 举报
回复
String path = "F:/javapath/path.txt";试试这样
zhouqixiang 2007-04-29
  • 打赏
  • 举报
回复
路过,帮顶!
WIN_ANGEL 2007-04-25
  • 打赏
  • 举报
回复
顶一下
liusx0113 2007-04-24
  • 打赏
  • 举报
回复
但是删除文件索引时以文件路径进行删除不能成功,以文件名可以。
----------------------------------------------------------------
怀疑是你的document中"path"域中存的就是文件名,而不是路径。Term term = new Term("path", path);是要参数path和"path"域中完全匹配的。文件名可以,路径不可以的话,觉得只有这个可能了。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧