001 package org.kuali.incubator;
002
003 import org.apache.solr.client.solrj.SolrQuery;
004 import org.apache.solr.client.solrj.SolrServerException;
005 import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
006 import org.apache.solr.client.solrj.response.QueryResponse;
007 import org.apache.solr.common.SolrDocument;
008 import org.apache.solr.common.SolrDocumentList;
009
010 import java.util.*;
011
012 /**
013 * Created by IntelliJ IDEA.
014 * User: pvsubrah
015 * Date: 10/21/11
016 * Time: 10:57 AM
017 * To change this template use File | Settings | File Templates.
018 */
019 public class SolrRequestReponseHandler {
020
021 public List retriveResults(String queryString) {
022 CommonsHttpSolrServer server = null;
023 ArrayList<HashMap<String, Object>> hitsOnPage = new ArrayList<HashMap<String, Object>>();
024
025 try {
026 String serverUrl = PropertyUtil.getPropertyUtil().getProperty("discovery.url");
027 server = new CommonsHttpSolrServer(serverUrl);
028 } catch (Exception e) {
029 e.printStackTrace();
030 }
031
032 SolrQuery query = new SolrQuery();
033 query.setQuery(queryString);
034 query.setIncludeScore(true);
035
036 try {
037 QueryResponse qr = server.query(query);
038
039 SolrDocumentList sdl = qr.getResults();
040
041
042 for (SolrDocument d : sdl) {
043 HashMap<String, Object> values = new HashMap<String, Object>();
044
045 for (Iterator<Map.Entry<String, Object>> i = d.iterator(); i.hasNext(); ) {
046 Map.Entry<String, Object> e2 = i.next();
047
048 values.put(e2.getKey(), e2.getValue());
049 }
050
051 hitsOnPage.add(values);
052 }
053 } catch (SolrServerException e) {
054 e.printStackTrace();
055 }
056 return hitsOnPage;
057 }
058 }