java - 在 Jetty 中嵌入 Solr 时无法创建 CoreContainer

标签 java solr lucene jetty

我按照这篇文章中的说明进行操作:http://javaskeleton.blogspot.de/2011/07/adding-solr-to-existing-web-application.html .

当我尝试执行这段代码时:

File home = new File(System.getProperty("solr.solr.home"));
CoreContainer container = new CoreContainer(home.getPath());
container.load();
EmbeddedSolrServer server = new EmbeddedSolrServer(container, "collection1");

我遇到了以下错误:

org.apache.lucene.store.LockObtainFailedException: Lock obtain timed out: NativeFSLock@C:\solr-4.6.0\example\solr\collection1\data\index\write.lock

经调查,错误是在加载 CoreContainer 时发出的。它试图锁定索引中显然已锁定的文件。

进一步的调查显示,SolrRequestFilter(由 Jetty 初始化的那个)也实例化了一个 CoreContainer,我猜他就是罪魁祸首。当我从 web.xml 中删除 SolrRequestFilter 定义时,我能够成功实例化 CoreContainer 和 EmbeddedServer。

我正在寻找关于如何尝试克服问题的见解,因为它似乎应该能够工作。

最佳答案

你必须找到锁定这个索引的人。

还有几种方法可能会有所帮助:

  • 自从您启动嵌入式 Solr 后,您需要确定 Solr 现在没有运行(我敢打赌 99% 这是导致此问题的原因)
  • 您可以手动删除此锁定文件

关于java - 在 Jetty 中嵌入 Solr 时无法创建 CoreContainer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21526151/

相关文章:

java - Android Parcelable - 使用通用数据类型将数据读/写到 Parcel

java - 正则表达式过滤联系人号码

java - 请批评我通过提供客户状态的验证进行数据导入的方法

date - Lucene/Solr : facet an already faceted date field (pivot facet/tree facet/sub-facet/hierarchical facets)

solr - 使用 Solr 在边界框内进行地理空间搜索

java - 如何使用 Ant(在 Eclipse 之外......)构建一个 Selenium Web Driver java 应用程序?

java - Solr 对存储的数据应用过滤器

java - org.apache.lucene.store.LockObtainFailedException : Lock obtain timed out: NativeFSLock@/var/database/schema/label/lucene/write. 锁

php - 自动完成电影名称

mysql - MySQL复合表的搜索应该如何实现?