问题描述
我想问下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