2

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

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

4

1 回答 1

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 服务器和 SolrJ 之间的通信通过 HTTP 以自定义二进制格式进行。您可以浏览 Solr Web Adminhttp://localhost:8080/solr吗?根据您的安装,您可能需要调整端口(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,则需要以下 jars:

  • solr-solrj-4.2.0
  • 动物园管理员-3.4.5
  • commons-io-2.1
  • httpclient-4.2.3
  • httpcore-4.2.2
  • commons-codec-1.6
  • httpmime-4.2.3
  • wstx-asl-3.2.3
  • slf4j-simple-1.5.6
  • slf4j-api-1.7.2
  • 公共日志记录-1.1.1
于 2013-04-28T07:55:08.630 回答