gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 08:53:32 34 4
gpt4 key购买 nike

我按照这篇文章中的说明进行操作: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/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com