是否有任何SolrJ文档可用于与Solr 4.0或之前的连接

时间:2013-04-28 07:47:56

标签: solr solrj

我无法从SolrJ连接到Tomcat上的Solr实例。我已经阅读了“http://wiki.apache.org/solr/Solrj”中显示的文档,但它已经过时了 - 主要是因为它没有参考Solr核心。我想知道是否有人可以指出我最新的文档或建议如何将SolrJ与Solr4.0连接或提前 - 虽然我的实例现在只运行1个核心。

这是我的连接字符串:“localhost:8080 / solr-example / collection1 /”。你知道哪些罐子与solrj一起添加?多数民众赞成在麻烦的地方。例如,SolrJ wiki在solr 4.0 zip文件中引用了一个名为commons-codec-1.3.jar的jar,它在任何地方都找不到。

1 个答案:

答案 0 :(得分:4)

使用SolrJ从Java调用Solr

您可以直接在URL中指定Core。

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 Server和SolrJ之间的通信通过HTTP以自定义二进制格式进行。您可以在http://localhost:8080/solr浏览Solr Web Admin吗?根据您的安装,您可能需要调整端口(Tomcat上默认为8080,jetty使用8983)。

另外,您是使用通用名称部署Solr还是包含版本?比您的网址为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,则需要以下罐子:

  • 的solr-solrj-4.2.0
  • 动物园管理员-3.4.5
  • 公地-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
  • 共享记录-1.1.1