2015-04-03 3 views
2

Я использую Solr-5.0.0.Ошибка в анализе Solr-ответа

Я связываюсь с запросом Solr, используя Java. Я использую предложение 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

+0

Не могли бы вы вставить стек, чтобы увидеть, откуда идет NPE. Также проверьте журналы solr, чтобы узнать, сколько записей возвращается solr для этого запроса на поиск. –

ответ

0

I я не знаком с классом SolrQuery, который вы использовали.

Я использовал solr в своей программе, создав URL-адрес (запрос Solr) и получив ответ как JSon, как показано ниже.

Определить запрос как URL

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

Прочитайте результат Solr в JSon из URL запроса

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.

0

Отладить запрос, используя a link и посмотреть, правильно ли построен запрос. Затем вы можете принять в java

Смежные вопросы