solr-indexer アプリケーションのいくつかのテストをコーディングしています。テストのベスト プラクティスに従って、自己依存型のコードを記述し、インデックス作成と検索のテスト用に and をロードして一時的なデータ ツリーを作成しschema.xmlたいと考えています。solrconfig.xmlアプリケーションはほとんど Java で書かれているため、SolrJ ライブラリを扱っていますが、問題が発生しています (まあ、corecontainers-coredescriptor-coreconfig-solrcore の世界で迷子になっています ...) 誰でもここにいくつかの構成をロードし、パラメータが渡されたデータディレクトリにも書き込む組み込みサーバーを作成するコード?
19304 次
3 に答える
12
AbstractSolrTestCaseを拡張するSolrExampleTestBaseを拡張するSolrExampleTestsから始めることができます。
また、このSampleTest。
于 2009-06-01T23:23:20.017 に答える
7
これは単純なテスト ケースの例です。solr は、solr 構成ファイルを含むディレクトリーです。
import java.io.IOException;
org.apache.solr.client.solrj.embedded.EmbeddedSolrServer をインポートします。
org.apache.solr.util.AbstractSolrTestCase をインポートします。
org.apache.solr.client.solrj.SolrQuery をインポートします。
org.apache.solr.client.solrj.SolrServer をインポートします。
org.apache.solr.client.solrj.SolrServerException をインポートします。
org.apache.solr.client.solrj.response.QueryResponse をインポートします。
org.apache.solr.common.SolrInputDocument をインポートします。
org.apache.solr.common.params.SolrParams をインポートします。
org.junit.Before をインポートします。
org.junit.Test をインポートします。
import static org.junit.Assert.assertEquals;
public class SolrSearchConfigTest extends AbstractSolrTestCase {
プライベート SolrServer サーバー。
@オーバーライド
public String getSchemaFile() {
「solr/conf/schema.xml」を返します。
}
@オーバーライド
public String getSolrConfigFile() {
「solr/conf/solrconfig.xml」を返します。
}
@前
@オーバーライド
public void setUp() は例外をスローします {
super.setUp();
サーバー = 新しい EmbeddedSolrServer(h.getCoreContainer(), h.getCore().getName());
}
@テスト
public void testThatNoResultsAreReturned() は SolrServerException をスローします {
SolrParams params = new SolrQuery("見つからないテキスト");
QueryResponse レスポンス = server.query(params);
assertEquals(0L, response.getResults().getNumFound());
}
@テスト
public void testThatDocumentIsFound() は、SolrServerException、IOException をスローします {
SolrInputDocument ドキュメント = 新しい SolrInputDocument();
document.addField("id", "1");
document.addField("名前", "私の名前");
server.add(ドキュメント);
server.commit();
SolrParams params = new SolrQuery("名前");
QueryResponse レスポンス = server.query(params);
assertEquals(1L, response.getResults().getNumFound());
assertEquals("1", response.getResults().get(0).get("id"));
}
}
詳細については、このブログ投稿を参照してください: Solr 統合テスト
于 2011-03-05T08:25:46.623 に答える
5
最初に、solr.xml を含む Solr ホーム ディレクトリと、solrconfig.xml、schema.xml などを含む conf フォルダーを設定する必要があります。
その後、この単純で基本的なコードを Solrj に使用できます。
File solrHome = new File("Your/Solr/Home/Dir/");
File configFile = new File(solrHome, "solr.xml");
CoreContainer coreContainer = new CoreContainer(solrHome.toString(), configFile);
SolrServer solrServer = new EmbeddedSolrServer(coreContainer, "Your-Core-Name-in-solr.xml");
SolrQuery query = new SolrQuery("Your Solr Query");
QueryResponse rsp = solrServer.query(query);
SolrDocumentList docs = rsp.getResults();
Iterator<SolrDocument> i = docs.iterator();
while (i.hasNext()) {
System.out.println(i.next().toString());
}
これが役立つことを願っています。
于 2012-08-22T10:38:57.203 に答える