2

SolrJ から Tomcat 上の Solr インスタンスに接続できません。「 http://wiki.apache.org/solr/Solrj 」に示されているドキュメントを確認しましたが、かなり古くなっています。主な理由は、Solr コアに関するリファレンスがないためです。誰かが最新のドキュメントを教えてくれるか、SolrJ を Solr4.0 以降に接続する方法についてアドバイスしてくれるかどうか疑問に思っていますが、私のインスタンスは今のところ 1 つのコアしか実行していません。

これが私の接続文字列です: "localhost:8080/solr-example/collection1/". solrj と一緒に追加する jar を知っていますか? そこが問題かもしれません。たとえば、SolrJ wiki は、solr 4.0 zip ファイルのどこにも見つからない commons-codec-1.3.jar という jar を参照しています。

4

1 に答える 1

4

SolrJ を使用して Java から Solr を呼び出す

Core は URL で直接指定できます。

HttpSolrServer server = new HttpSolrServer("http://localhost:8080/solr/my_core");

SolrQuery solrQuery = new SolrQuery();
solrQuery.setQuery(q);
solrQuery.setStart(start);
solrQuery.setRows(rows);

QueryResponse response = server.query(solrQuery);

HttpSolrServerより多くのクエリで再利用できます。

Solr サーバーと SolrJ の間の通信は、カスタム バイナリ形式の HTTP 経由で行われます。で Solr Web Admin を参照できますhttp://localhost:8080/solrか? インストールによっては、ポートを調整する必要がある場合があります (Tomcat では 8080 がデフォルトで、jetty は 8983 を使用します)。

また、一般的な名前で Solr をデプロイしましたか、それともバージョンを含めましたか? あなたのURLよりもhttp://localhost:8080/solr-4.2.1/my_core

依存関係

これらは、SolrJ を使用するために必要な最小限の依存関係です。Maven を使用している場合は、これらを pom.xml に追加します。

<dependency>
  <artifactId>solr-solrj</artifactId>
  <groupId>org.apache.solr</groupId>
  <version>4.2.0</version>
  <type>jar</type>
  <scope>compile</scope>
</dependency>
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-simple</artifactId>
  <version>1.5.6</version>
</dependency>
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-api</artifactId>
  <version>1.7.2</version>
</dependency>
<dependency>
  <groupId>commons-logging</groupId>
  <artifactId>commons-logging</artifactId>
  <version>1.1.1</version>
</dependency>

Maven を使用していない場合は、次の jar が必要です。

  • solr-solrj-4.2.0
  • 飼育係-3.4.5
  • commons-io-2.1
  • httpclient-4.2.3
  • httpcore-4.2.2
  • コモンズ-コーデック-1.6
  • httpmime-4.2.3
  • wstx-asl-3.2.3
  • slf4j-シンプル-1.5.6
  • slf4j-api-1.7.2
  • commons-logging-1.1.1
于 2013-04-28T07:55:08.630 に答える