2017-04-13 65 views
-1

我加入Java庫的.jar文件,並嘗試連接到Solr的,代碼如下:solrJ錯誤HttpSolrServer和SolrServer

import java.net.MalformedURLException; 
import org.apache.solr.client.solrj.SolrServer; 
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.params.ModifiableSolrParams; 

public class SolrQuery { 
    public static void main(String[] args) throws MalformedURLException, SolrServerException { 
    SolrServer server = new HttpSolrServer("http://localhost:8080/solr"); 
     ModifiableSolrParams params = new ModifiableSolrParams(); 
     params.set("q", "1"); 

      QueryResponse response = server.query(params); 

      System.out.println("response = " + response); 

    } 
} 

但是,當我嘗試運行該程序,我遇到錯誤:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    SolrServer cannot be resolved to a type 
    HttpSolrServer cannot be resolved to a type 
    The type org.apache.solr.common.params.SolrParams cannot be resolved. It is indirectly referenced from required .class files 

我該如何解決呢?

+0

添加集合名稱的url或設置集合名稱。 – vinod

+0

@vinod我是新手,可以更具體嗎? –

+0

檢查答案。 – vinod

回答

0

在服務器URL添加集合/核心名稱,索引文檔的位置。

SolrServer server = new HttpSolrServer(「http://localhost:8080/solr/collection」);

示例Java代碼供您參考。

*提供索引到solr的所有文件。將*更改爲要搜索的關鍵字字符串。

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 SearchSolr { 

    public static void main(String[] args) throws SolrServerException { 
     HttpSolrServer solr = new HttpSolrServer("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)); 
     } 
    } 
} 
+0

sry,我剛剛試過你的代碼,並且得到了同樣的錯誤:線程中的異常「main 「java.lang.Error的:未解決編譯問題: \t構造HttpSolrServer(字符串)是未定義 \t方法setQuery(字符串)是未定義的類型SolrQuery \t的方法查詢(SolrQuery)是未定義的類型HttpSolrServer \t無法解析類型java.util.Map $ Entry。它是從需要的.class文件間接引用 –

+0

您是否添加了solrJ jar文件? – vinod

+0

這些是我導入的文件:commons-io-2.5,httpclient-4.4.1,httpcore-4.4.1,httpmime-4.4.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-solr-6.5。 0 –