在Solr的连接java的麻烦(trouble in solr connect java)

2019-09-29 07:29发布

我尝试使用的Solr 6.5.0连接爪哇。 我加入了以下.jar文件到库:

commons-io-2.5
httpclient-4.4.1
httpcore-4.4.1
httpmine-4.4.1
jcl-over-slf4j-1.7.7
noggit-0.6
slf4j-api-1.7.7
stax2-api-3.1.4
woodstox-core-asl-4.4.1
zookeeper-3.4.6
solr-solrj-6.5.0

但是当我尝试使用下面的代码来连接Solr的:

import org.apache.http.impl.bootstrap.HttpServer;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocumentList;

public class SolrQuery {

  public static void main(String[] args) throws SolrServerException {
    HttpSolrServer solr = new HttpServer("http://localhost:8983/solr/collection1");
    SolrQuery query = new SolrQuery();
    query.setQuery("*"); 
    QueryResponse response = solr.query(query);
    SolrDocumentList results = response.getResults();
    for (int i = 0; i < results.size(); ++i) {
      System.out.println(results.get(i));
    }   
  }   
}

之前我编译它,我得到的错误:

import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.SolrQuery;
HttpSolrServer solr = new HttpServer("http://localhost:8983/solr/collection1");

谁能帮我该如何解决呢?

Answer 1:

在你的问题中的代码是为以前版本的旧版本的Solr的编写。 5.0。 你会发现许多来源,并如约写于旧版本的Solr,但在大多数的情况下,所有你需要做的是改变旧的SolrServer类新SolrClient (现在是正确的)类。

无论是你想使用Solr的实例表示。

阅读Solr的文档-使用SolrJ

我热烈建议(在您的示例类被命名为你的类已经存在的类同名不使用SolrQuery )。

美中不足的所有字符串Solr的查询是*:*这意味着:搜索任何匹配的所有可用字段。 所以更改语句query.setQuery到:

query.setQuery("*:*"); 

我假设你使用的Solr客户端的独立实例是这样,因为你已经知道,正确的方法为实例SolrClient是:

String urlString = "http://localhost:8983/solr/gettingstarted";
SolrClient solr = new HttpSolrClient.Builder(urlString).build();

这是一个简单的方法,我建议在所有返回的文档进行迭代:

for (SolrDocument doc : response.getResults()) {
   System.out.println(doc);
}

看一看的文件SolrDocument类,解释如何使用它,并正确地读取字段值。



Answer 2:

我创办我需要导入未在指定的/ DIST库包含一个.jar文件slf4j-simple-1.7.25 ,也

HttpSolrServer solr = new HttpServer("http://localhost:8983/solr/gettingstarted");
        SolrQuery query = new SolrQuery();

需要改变的

 String urlString = "http://localhost:8983/solr/gettingstarted";
    SolrClient solr = new HttpSolrClient.Builder(urlString).build();

之后,它终于已经能运行!



文章来源: trouble in solr connect java
标签: solr solrj