我按照这篇文章中的说明操作: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获取定时 出: NativeFSLock @ C:\ solr的-4.6.0 \示例\ solr的\ collection1 \数据\索引\ write.lock
经过调查,加载CoreContainer时会发出错误。它试图锁定显然已锁定的索引中的文件。
进一步的调查显示,SolrRequestFilter(由Jetty初始化的那个)也实例化了一个CoreContainer,我的猜测是他是罪犯。当我从web.xml中删除SolrRequestFilter定义时,我能够成功实例化CoreContainer和EmbeddedServer。
我正在寻找有关如何克服这个问题的见解,因为它似乎应该可以工作。
答案 0 :(得分:0)
您必须找到锁定此索引的人。
还有几种方法可能有所帮助: