我有一个测试环境的SolR 3.6,我试图迁移到4.0,但我得到以下错误。SolR 4.0测试与AbstractSolrTestCase
主要源代码如下:
public class SolrConfigTest extends AbstractSolrTestCase {
String container = "mycore";
@Override
public String getSolrHome() {
return System.getProperty("user.dir") + "/resources/";
}
@Override
public String getSchemaFile() {
return getSolrHome() + container + "/conf/schema.xml";
}
@Override
public String getSolrConfigFile() {
return getSolrHome() + container + "/conf/solrconfig.xml";
}
@Before
@Override
public void setUp() throws Exception {
super.setUp();
CoreContainer.Initializer initializer = new CoreContainer.Initializer();
coreContainer = initializer.initialize();
server = new EmbeddedSolrServer(coreContainer, "mycore");
}
}
Solr的文件夹结构:
+solr
+mycore
+conf
+data
+lib
的solr.xml配置文件:
<?xml version="1.0" encoding="UTF-8" ?>
<solr persistent="false">
<cores adminPath="/admin/cores" defaultCoreName="mycore" host="${host:}" hostPort="${jetty.port:}" hostContext="${hostContext:}" zkClientTimeout="${zkClientTimeout:15000}">
<core name="mycore" instanceDir="mycore" />
</cores>
</solr>
然而,当我执行此代码,我得到以下错误:
[java] 16-dic-2012 0:43:15 SolrConfig <init> [java] 16-dic-2012 0:43:15 org.apache.solr.util.AbstractSolrTestCase setUp [java] INFO: ####SETUP_START <unknown> [java] 16-dic-2012 0:43:15 org.apache.solr.core.SolrResourceLoader <init> [java] INFO: new SolrResourceLoader for directory: '/home/user/workspace/tech/SolrTest/resources//collection1/' [java] 16-dic-2012 0:43:16 org.apache.solr.core.SolrConfig initLibs [java] INFO: Adding specified lib dirs to ClassLoader [java] 16-dic-2012 0:43:16 org.apache.solr.core.SolrConfig <init> [java] INFO: Using Lucene MatchVersion: LUCENE_40 [java] 16-dic-2012 0:43:16 org.apache.solr.core.SolrConfig <init> [java] INFO: Loaded SolrConfig: /home/user/workspace/tech/SolrTest/resources/mycore/conf/solrconfig.xml [java] 16-dic-2012 0:43:16 org.apache.solr.schema.IndexSchema readSchema [java] INFO: Reading Solr Schema [java] 16-dic-2012 0:43:16 org.apache.solr.schema.IndexSchema readSchema [java] INFO: Schema name=mycore [java] 16-dic-2012 0:43:17 org.apache.solr.schema.IndexSchema readSchema [java] INFO: unique key field: ID [java] java.lang.RuntimeException: java.io.IOException: Can't find resource 'stopwords.txt' in classpath or
'/home/user/workspace/tech/SolrTest/resources//collection1/conf/', cwd=/home/user/workspace/tech/SolrTest [java] at org.apache.solr.schema.IndexSchema.(IndexSchema.java:116)
看起来像SolR无法找到solr.xml(但确实找到solrconfig.xml),这就是为什么要访问到collection1(我读过,如果solr没有找到solr.xml,设置核心为collection1),但getSolrHome()指向存储solr.xml的文件夹。
我在做什么错?
亲切的问候
是的,它存在于该目录中。但是,您可以看到Solr正在/ home/user/workspace/tech/SolrTest/resources/collection1/conf中查找此类文件。我已经阅读了测试模式,核心硬编码为collection1。是对的吗? – asuka
对不起,我还没有使用测试模式,所以我不知道在这种情况下核心是否硬编码为collection1。 –