我无法从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,它在任何地方都找不到。
答案 0 :(得分:4)
您可以直接在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,则需要以下罐子: