簡體   English   中英

使用AbstractSolrTestCase進行SolR 4.0測試

[英]SolR 4.0 test with AbstractSolrTestCase

我有一個SolR 3.6的測試環境,我正在嘗試將其遷移到4.0,但我收到以下錯誤。

主要源代碼如下:

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] org.apache.solr.schema.IndexSchema。(IndexSchema。的java:116)

似乎SolR找不到solr.xml(但確實找到solrconfig.xml),這就是為什么嘗試訪問collection1(我已經讀過,如果solr沒有找到solr.xml,則將核心設置為collection1) ,但getSolrHome()指向存儲solr.xml的文件夾。

我究竟做錯了什么?

親切的問候

你可能指定了錯誤的solr home。

試試下面,

    @Override
    public String getSolrHome() {
        return System.getProperty("user.dir") + "/resources/solr";
    }

其實錯誤似乎是該文件stopwords.txt從丟失conf為Solr的文件夾中。 你能否確認目錄/home/user/workspace/tech/SolrTest/resources/mycore/conf/存在一個stopwords.txt文件

由於架構文件中fieldType的分析器/過濾器引用了stopwords.txt文件,因此報告此錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM