当前位置:编程学习 > JAVA >>

Lucen根据path无法删除索引

代码
            //索引库存放位置
     File indexDir = new File("E:\\TestLucene\\fileIndex");     
     Directory directory = FSDirectory.open(indexDir); 
     IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_35,
             new  StandardAnalyzer(Version.LUCENE_35));  
     //最大缓存文档数,控制写入一个新的segment前内存中保存的document的数目  
     config.setMaxBufferedDocs(100);  
     //控制一个segment中可以保存的最大document数目,值较大有利于追加索引的速度
             ,默认Integer.MAX_VALUE,无需修改。  
     config.setMaxBufferedDocs(Integer.MAX_VALUE);  
     IndexWriter indexWriter = new IndexWriter(directory, config);  
     indexWriter.deleteDocuments(new Term("path","d.txt"));   ---------改成“Id”删除是没问题的
     //这两句一定要执行  
     indexWriter.forceMerge(1);  
     indexWriter.close();    --------------------编程问答-------------------- 怎么就没有高人了呢? --------------------编程问答-------------------- 有大侠给解决一下吗?? --------------------编程问答-------------------- 自己已解决 
 是因为在添加时设置成分词索引了 (开始用的id 删除 没有改过 现在改成Path 自己的粗心)所以把代码贴出来和大家分享。
if(path1.endsWith(".docx"))
      {
   System.out.println("File " + path1+ "正在被索引....");
           String temp = FileReaderAll(path1, "GBK");
           System.out.println(temp);
           Document document = new Document();
           FileInputStream file_input_stream = new FileInputStream(path1);
           BufferedInputStream input_stream_buffer = new BufferedInputStream(file_input_stream);
           OPCPackage opcPackage = POIXMLDocument.openPackage(path1);      
           POIXMLTextExtractor ex = new XWPFWordExtractor(opcPackage);       
          // WordExtractor doc_extractor = new WordExtractor(input_stream_buffer);  
           System.out.println("ex.getText()"+ex.getText());
           Date date =new Date();                                           
          // document.add( new Field("id", date.getTime() + "", Field.Store.YES, Field.Index.ANALYZED));  
           document.add(new Field("path",path1,Field.Store.YES,Field.Index.ANALYZED));
           document.add(new Field("body",ex.getText(),Field.Store.YES,Field.Index.ANALYZED));
           indexWriter.addDocument(document);          
           input_stream_buffer.close();
           file_input_stream.close();
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,