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 に答える