首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

求救:lucene索引文件时出错解决办法

2012-02-17 
求救:lucene索引文件时出错我索引文件的函数如下:privatestaticvoidindexFile(IndexWriterwriter,Filef)th

求救:lucene索引文件时出错
我索引文件的函数如下:
    private   static   void   indexFile(IndexWriter   writer,   File   f)
        throws   Exception   {

        if   (f.isHidden()   ||   !f.exists()   ||   !f.canRead())   {
            return;
        }    
              //读句子加入索引  
              InputStreamReader     read   =   new   InputStreamReader   (new   FileInputStream(f), "UTF-8 ");
BufferedReader   reader=new   BufferedReader(read);
String   line;
Document   doc   =   new   Document();
while   ((line   =   reader.readLine())   !=   null)  
{
    addDoc(writer, "sen ",line);
}
        writer.optimize();
        writer.close();
    }
private   static   void   addDoc(IndexWriter   writer,   String   FIELD_NAME,String   text)   throws   IOException
{
                      Document   d   =   new   Document();
                      Field   f   =   new   Field(FIELD_NAME,   text   ,   Field.Store.YES,   Field.Index.TOKENIZED,     Field.TermVector.WITH_POSITIONS_OFFSETS);
                      d.add(f);
                      writer.addDocument(d);

}
我索引一个文件(文件不大)时没有报错,当文件过多或者文件过大时就报错:
Exception   in   thread   "main "   java.io.IOException:   Cannot   rename   D:\Tomcat   5.0\webapps\search\index\segments.new   to   D:\Tomcat   5.0\webapps\search\index\segments
at   org.apache.lucene.store.FSDirectory.renameFile(FSDirectory.java:294)
at   org.apache.lucene.index.SegmentInfos.write(SegmentInfos.java:95)
at   org.apache.lucene.index.IndexWriter$4.doBody(IndexWriter.java:726)
at   org.apache.lucene.store.Lock$With.run(Lock.java:99)
at   org.apache.lucene.index.IndexWriter.mergeSegments(IndexWriter.java:724)
at   org.apache.lucene.index.IndexWriter.mergeSegments(IndexWriter.java:686)
at   org.apache.lucene.index.IndexWriter.maybeMergeSegments(IndexWriter.java:674)
at   org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:479)
at   org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:462)
at   index.IndexManager.addDoc(IndexManager.java:146)
at   index.IndexManager.indexFile(IndexManager.java:125)
at   index.IndexManager.indexDirectory(IndexManager.java:84)
at   index.IndexManager.index(IndexManager.java:64)
at   index.IndexManager.run(IndexManager.java:43)
at   search.SearchManager.main(SearchManager.java:49)
Caused   by:   java.io.FileNotFoundException:   D:\Tomcat   5.0\webapps\search\index\segments   (拒绝访问。)
at   java.io.FileOutputStream.open(Native   Method)
at   java.io.FileOutputStream. <init> (Unknown   Source)
at   java.io.FileOutputStream. <init> (Unknown   Source)
at   org.apache.lucene.store.FSDirectory.renameFile(FSDirectory.java:278)
...   14   more
我估计是索引文件写入磁盘时发生冲突,请问有什么解决办法么?



[解决办法]
找到问题的解决办法了!
把你的杀毒软件停止服务,就一切OK了~~
弱智的杀毒软件啊。。。。肯定对系统文件的钩子做了一些影响其他进程的操作!!

热点排行