luence2.2 无法删除指定索引
代码如下:
import java.io.IOException;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.Term;
import org.apache.lucene.index.IndexWriter;
public class upIndex {
public void upIndex(){
try{
IndexReader ir = IndexReader.open("C:\\index");
System.out.println("索引中的文档数量:"+ir.numDocs());
int r = ir.deleteDocuments(new Term("filename", "j79-1008.txt"));
System.out.println("己删除"+r+"个索引");
ir.close();
ir=IndexReader.open("C:\\index");
System.out.println("删除文档后的数量"+ir.numDocs());
}catch (Exception e) {
System.out.println("出错");
}
}
public static void main(String[] args) {
upIndex ed = new upIndex();
ed.upIndex();
}
}
运行输出结果:
索引中的文档数量:2790
己删除0个索引
删除文档后的数量2790
哪里出问题了?大侠们请多多指点
[解决办法]
建立索引时自定义一个field段,给一个唯一值如:doc.add(new Field("title", String.valueOf(num), Field.Store.YES, Field.Index.TOKENIZED));
删除时使用int r = ir.deleteDocuments(new Term("title", "123"));