Rev 20230 | Rev 20260 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.dtrapi.services;import freemarker.template.utility.DeepUnwrap;import in.shop2020.config.ConfigException;import in.shop2020.thrift.clients.config.ConfigClient;import java.io.IOException;import java.io.InputStream;import java.net.MalformedURLException;import java.net.URISyntaxException;import java.net.URL;import org.apache.commons.io.IOUtils;import org.apache.http.client.utils.URIBuilder;import org.apache.log4j.Logger;public class SolrService{private static String SOLR_URL;private static final String limit ="20";private static final String autoSuggestField = "title,subCategoryId,category_id,category,subCategory,score";private static final String searchResultsField = "fl,title,skuBundleId,id,thumbnail";private static final String outputFormat = "json";private static Logger log = Logger.getLogger(Class.class);static{synchronized(SolrService.class){try {SOLR_URL = ConfigClient.getClient().get("dtr_solr_url");} catch (ConfigException e) {log.error("Error while gettting dtr_solr_url param from config service", e);SOLR_URL = "http://localhost:8983/solr/collection1/select";}}}public String getSuggestions(String search_text) throws URISyntaxException, IOException{URIBuilder autoSuggestUrl = new URIBuilder(SOLR_URL);autoSuggestUrl.addParameter("fl", autoSuggestField); //Fields to chooseautoSuggestUrl.addParameter("wt", outputFormat); //Output formatautoSuggestUrl.addParameter("rows", limit); //search limit for each grouped field or queryautoSuggestUrl.addParameter("q", "suggest:("+search_text+")");URL url = autoSuggestUrl.build().toURL();log.info("Search Url Autosuggest"+url.toString());InputStream is = url.openStream();String jsonString;try{jsonString = IOUtils.toString(is, "UTF-8");}finally{is.close();}return jsonString;}public String getSearchResults(String search_text, String offset) throws URISyntaxException, IOException{URIBuilder generalSearchUrl = new URIBuilder(SOLR_URL);generalSearchUrl.addParameter("q", search_text);generalSearchUrl.addParameter("fl", searchResultsField); //Fields to choosegeneralSearchUrl.addParameter("wt", outputFormat); //Output formatgeneralSearchUrl.addParameter("rows", limit); //limitif (offset!=null && !offset.isEmpty()){generalSearchUrl.setParameter("start", offset);}URL url = generalSearchUrl.build().toURL();log.info("Search Url Search Results"+url.toString());InputStream is = url.openStream();String jsonString;try{jsonString = IOUtils.toString(is, "UTF-8");}finally{is.close();}return jsonString;}}