2015-04-03 71 views
2

我正在使用Solr-5.0.0。解析Solr響應時出錯

我打算用Java查詢Solr。我在這裏使用group by子句。

它我的代碼

SolrQuery qry = new SolrQuery(); 

qry.setQuery("product_name:(laptops)"); 
qry.addFilterQuery("brand:dell OR brand: sony OR brand:samsung"); 
qry.setParam("group", true); 
qry.setParam("group.field", "brand"); 
qry.setParam("stats", true); 
qry.setParam("stats.field", "product_price"); 
qry.setFields("brand"); 
System.out.println(qry.toString()); 

QueryRequest qryReq = new QueryRequest(qry); 
QueryResponse resp = qryReq.process(solr); 
System.out.println(resp.getResponse().toString()); 

// Here I am getting required response; 
SolrDocumentList docs = resp.getResults(); 

//Below code giving me exception null pointer 
for(int i = 0; i < docs.size(); i++) { 
    System.out.println(docs.get(i)); 
} 

但我不能夠解析query.I的結果,只需要得到從查詢的列表或數組

+0

@cheffe有什麼幫助嗎? – Juhan 2015-04-03 10:08:50

+0

您可以粘貼堆棧跟蹤來查看NPE來自哪裏。同時檢查solr日誌以查看solr爲此搜索請求返回的記錄數量。 – 2015-04-03 22:50:31

回答

0

我品牌和其相應的計我不熟悉你使用的SolrQuery類。

我在我的程序中使用了solr,通過創建一個URL(Solr請求)並獲得如下JSon的響應。

定義請求的URL

String url = "http://"+solr_server+":"+solr_port+"/solr/collection_name/select?q="+brand+"&wt=json&indent=true"; 

從請求URL中讀取Solr的JSON作爲結果

JSONObject json = readJsonFromUrl(url); 

獲取作出反應並隨後文檔 - 然後通過文檔循環

JSONObject j1 = (JSONObject) json.get("response"); 
JSONArray j2 = j1.getJSONArray("docs"); 
for(int i=0;i<j2.length();i++){ 
    //do whatever you want to do 
} 

記得在你的類路徑中使用來自http://www.java2s.com/Code/JarDownload/java-json/java-json.jar.zip的jar。

0

使用a link調試查詢並查看查詢是否構建正確。那麼你可以採用java