是否有任何SolrJ文档可用于连接Solr 4.0或更高版本



我无法从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文件中找不到。

使用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吗?根据您的安装,您可能需要调整端口(8080是Tomcat的默认值,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
  • zookeeper-3.4.5
  • commons - io - 2.1
  • httpclient-4.2.3
  • httpcore-4.2.2
  • commons -编码- 1.6
  • httpmime-4.2.3
  • wstx-asl-3.2.3
  • slf4j-simple-1.5.6
  • slf4j-api-1.7.2
  • commons-logging-1.1.1

最新更新