Lucene某条索引删除问题

问题描述

我想问下public static void deleteOneIndex(String indexDir, Analyzer analyzer,String field, String key) {try {Directory dir = new SimpleFSDirectory(new File(indexDir));IndexWriter indexWriter = new IndexWriter(dir, analyzer, false,IndexWriter.MaxFieldLength.UNLIMITED);indexWriter.deleteDocuments(new Term(field, key));indexWriter.optimize();indexWriter.commit();System.out.println("是否删除成功=" + indexWriter.hasDeletions());System.out.println("一共有" + indexWriter.maxDoc() + "索引");System.out.println("还剩" + indexWriter.numDocs() + "索引");indexWriter.close();} catch (IOException e) {System.out.println(" caught a " + e.getClass()+ "n with message: " + e.getMessage());}}这样为什么没有删除掉我想删除的索引 例如:deleteOneIndex("D:\logs\lucenedoc",new StandardAnalyzer(Version.LUCENE_33),"name","张三");没有分了 希望指点下,不胜感激!!

解决方案

参考:http://hi.baidu.com/waltertan/blog/item/c3af66e92ce59d34b90e2dcb.html

时间: 2024-09-17 03:36:15

Lucene某条索引删除问题的相关文章

sql-oracle表中记录大于100条时删除插入时间最早的记录

问题描述 oracle表中记录大于100条时删除插入时间最早的记录 假设数据表中有字段id.name.sex.age.className.createtime.现在希望表 中保留100条记录,当第101条记录插入时,删除createtime最早的一条记录. 代码中如何写sql效率比较高,求大神指点! 解决方案 要效率高,就不要每次插入都删除.而是直接用top 100取,对时间字段设置为排序+索引字段.

大量数据-solr设计大数据量索引删除问题

问题描述 solr设计大数据量索引删除问题 solr索引了大量数据,随着时间的累积,数据量越来越大,根据时间来删除历史数据,用deletebyquery来删除的话 ,执行时间过长,最后optimize的时间也很长,易用性不是很好.有什么好的方法来解决删除历史索引这个问题吗?

mysql创建索引与索引删除

本文章要来讲关于mysql教程创建索引与索引删除哦,本教程只讲关于mysql 5.0支持的索引类型,并简单介绍索引的设计原创,索引是数据库教程中用来提高性能的最常用的工具. 一. 所有mysql索引列类型都可以被索引,对来相关类使用索引可以提高select查询性能,根据mysql索引数,可以是最大索引与最小索引,每种存储引擎对每个表的至少支持16的索引.总索引长度为256字节. mysim和innodb存储引擎的表默认创建索引都是btree索引,目前mysql还不支持函数索引,但支持前缘索引,对

PHP + plupload.js实现多图上传并显示进度条加删除实例代码

PHP + plupload.js JS插件实现多图上传并显示进度条加删除实例,废话不多说,直接上代码 HTML代码: <!DOCTYPE html> <head> <meta charset="utf-8" /> <meta name="viewport" content="initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no&qu

Lucene如何获得索引列表及每个索引对应的记录条数(类似于google的自动提示)

问题描述 需要做一个自动提示的搜索引擎,当输入一个关键字时就能查找到与输入相关的全部关键字,并能获取它们所对应的总记录数.请问Lucene能否实现这样的功能? 解决方案 网上有很多这样的资讯比如实现类用Lucene PrefixQuery 来实现 Google Suggest 的功能的一种简单方法

如何用lucene给文本索引和搜索功能的应用

最近一段时间由于公司需要 ,模糊搜索出相似的关键词,所以直接考虑使用了lucene. lucene允许你往程序中添加搜索功能,lucene能够把你从文本中解析出来的数据进行索引和搜索 ,lucene不关心数据来源 甚至不关心语种,不过你需要把它转换成文本格式.也就是说你可以搜索 html网页,文本文档,word文档 ,pdf,或者其他一些 总之 只要能够提取出文本信息的即可.同样你也可以利用lucene来索引存储在数据库中的数据,以给你的用户提供一些  比如 全文搜索功能等 ,反正lucene的

Lucene实战构建索引

欢迎访问我的个人网站:http://wuyudong.com/ 搭建lucene的步骤这里就不详细介绍了,无外乎就是下载相关jar包,在eclipse中新建java工程,引入相关的jar包即可 本文主要在没有剖析lucene的源码之前实战一下,通过实战来促进研究 建立索引 下面的程序展示了indexer的使用 package com.wuyudong.mylucene; import org.apache.lucene.index.IndexWriter; import org.apache.l

Lucene .net多索引查询,报read past EOF

问题描述 对每张表建立索引放在不同目录,多表查询时调用多个索引查询,查询时会报错readpastEOF.具体错误如下:代码如下:#region搜索设置privatevoidSearchContent(){stringcontent=HttpContext.Current.Request.QueryString["content"];stringdate1=HttpContext.Current.Request.QueryString["date1"];stringd

Lucene.net操作索引库

删除 (软删除,仅添加了删除标记.调用IndexWriter.Optimize() 后真正删除) IndexReader reader = IndexReader.Open(directory); // 删除指定序号(DocId)的 Document. reader.Delete(123); // 删除包含指定 Term 的 Document. reader.Delete(new Term(FieldValue, "Hello")); // 恢复软删除. reader.Undelete