`

Lucene的IndexWriter初始化时的LockObtainFailedException的解决方法

 
阅读更多

原文链接:

http://www.javaarch.net/jiagoushi/904.htm

Lucene的IndexWriter初始化时的LockObtainFailedException的解决方法

 

本网站使用了lucene来支持搜索功能,然后定时重建索引,但是最近日志里面出现了下面的异常。

 

这个异常是因为lucene进入到索引目录中,发现里面就是一个write.lock。而IndexWriter的构造函数在试图获取另外一个IndexWriter已经加锁的索引目录时就会抛出一个LockObtainFailedException。

 

 

[ERROR] 2013-06-28 14:00:01,009 [org.springweb.lucene.DataIndex.index] - DataIndex index got error Lock obtain timed out: NativeFSLo

ck@/root/data/write.lock

org.apache.lucene.store.LockObtainFailedException: Lock obtain timed out: NativeFSLock@/root/data/write.lock

        at org.apache.lucene.store.Lock.obtain(Lock.java:84)

        at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:1098)

        at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:926)

        at org.springweb.lucene.DataIndex.index(DataIndex.java:36)

 

之前的代码是这样的

 

indexwrite.commit();

indexwrite.close();

 

在close方法里面也会调用unlock方法,就是删除write.lock的锁文件,但是之前在索引过程中抛出了异常,导致这个锁没有被释放,下次再建索引的时候就抛异常了。

 

所以要么在indexwrite构造方法前调用,要么保证indexwrite.close();能被调用。

 

 

// indexwrite.getDirectory().close();

if (IndexWriter.isLocked(directory)) {

IndexWriter.unlock(directory);

}

 

unlock就是删除public static final String WRITE_LOCK_NAME = "write.lock";这个文件

 

public static void unlock(Directory directory) throws IOException {

directory.makeLock(IndexWriter.WRITE_LOCK_NAME).release();

}

3
1
分享到:
评论
2 楼 tt5753 2015-12-14  
谢啦........
1 楼 liangcoder 2013-06-29  
good job~

建议:是不是在indexWriter.close() 时,如果发生异常就unlock下,不是更优雅?

相关推荐

    lucene,lucene教程,lucene讲解

    lucene,lucene教程,lucene讲解。 为了对文档进行索引,Lucene 提供了五个基础的类 public class IndexWriter org.apache.lucene.index.IndexWriter public abstract class Directory org.apache.lucene.store....

    与lucene3.0兼容的庖丁jar包

    lucene升级了,分词也得... at org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:1932) at org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:1906) 用该升级jar,可以解决该问题

    基于JAVA的搜索引擎 lucene-2.2.0

    通过IndexWriter索引器的构造函数,以及它初始化时调用的一个init方法,可以了解一个IndexWriter索引器的构造最重要的是在init方法中的初始化工作。它主要实现了根据指定的建立索引的方式(重写、追加写入),通过...

    Lucene 索引图形化界面工具 LukeAll 3.5~4.0

    Lucene索引图形化界面工具 LukeAll 高级图形化界面工具

    lucene-core-7.2.1-API文档-中文版.zip

    赠送jar包:lucene-core-7.2.1.jar; 赠送原API文档:lucene-core-7.2.1-javadoc.jar; 赠送源代码:lucene-core-7.2.1-sources.jar; 赠送Maven依赖信息文件:lucene-core-7.2.1.pom; 包含翻译后的API文档:lucene...

    最简单的Lucene建立、搜索索引的方法

    最简单的Lucene建立、搜索索引的方法,工程基于Myeclipse10

    lucene实例lucene实例

    lucene实例lucene实例lucene实例lucene实例lucene实例lucene实例lucene实例lucene实例lucene实例

    lucene可视化工具 Luck-6.5.0

    lucene的可视化工具,luck,能够将lucene中的数据显示在luck工具上

    Apache Lucene全文检索和IKAnalyzer分词工具类

    IndexWriter indexWriter = new IndexWriter(indexDir, luceneAnalyzer,true); for (int i = 0; i (); i++) { LuceneVO vo = (LuceneVO)list.get(i); Document doc = new Document(); Field FieldId = ...

    Lucene的中文分词方法设计与实现

    处理方法,提高全文检索系统的中文处理能力.整个模块基于当前最流行的搜索引擎架构 Lucene,实现了带有歧义消除功能的正向最大匹配算法.在系统评测方面,比较了该方法与现 有方法的区别,对于如何构建一个高效的...

    lucene3.0 lucene3.0

    lucene3.0 lucene3.0 lucene3.0 lucene3.0 lucene3.0

    lucene学习lucene学习

    lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习...

    lucene-core-7.7.0-API文档-中文版.zip

    赠送jar包:lucene-core-7.7.0.jar; 赠送原API文档:lucene-core-7.7.0-javadoc.jar; 赠送源代码:lucene-core-7.7.0-sources.jar; 赠送Maven依赖信息文件:lucene-core-7.7.0.pom; 包含翻译后的API文档:lucene...

    Lucene3.0特性,Lucene3.0特性

    Lucene3.0特性Lucene3.0特性

    论文lucene和heritrix的全文检索解决方案

    信息检索,全文本内容检索,lucene heritrix

    lucene.net 完全入门教程

    lucene.net 完全入门教程,包括 lucene.net 介绍, lucene.net工作模式, lucene.net分词方法和中文分词方法, lucene.net索引的建立详解, lucene.net搜索详解, lucene.net的下载方法, lucene.net搜索结果实现...

    LUCENE5.2工具封装

    基于java的lucene 5.2的封装,主要包括lucene的各种查询方法、建索引方法的实现,为使用lucene开发者提供便利,而不需要过多的lucene知识即可使用,具体使用方法请到github上download,里面有完整的demo。...

    lucene讲义 叫你用lucene算法

    lucene学习教程lucene讲义 叫你用lucene算法

    lucene 索引 查看 工具

    lucene 索引 查看 工具

    lucene.NET 中文分词

    lucene.NET 中文分词 高亮 lucene.NET 中文分词 高亮 lucene.NET 中文分词 高亮 lucene.NET 中文分词 高亮

Global site tag (gtag.js) - Google Analytics