Subversion Repositories SmartDukaan

Rev

Rev 21734 | Rev 23568 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package com.spice.profitmandi.web.services;


import java.io.IOException;

import java.io.InputStream;
import java.net.URISyntaxException;
import java.net.URL;

import org.apache.commons.io.IOUtils;
import org.apache.http.client.utils.URIBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;


@Component
public class SolrService{
        
        private static final Logger logger=LoggerFactory.getLogger(SolrService.class);
        
        @Value("${solr.url}")
        private String SOLR_URL;
        private static final String limit ="20";
        private static final String groupLimit = "10";
        private static final String autoSuggestField = "title,subCategoryId,category_id,category,subCategory,score";
        private static final String searchResultsField = "title,skuBundleId,id,thumbnail,ids";
        private static final String outputFormat = "json";
        
        
        
        public String getSuggestions(String search_text) throws URISyntaxException, IOException{

                URIBuilder autoSuggestUrl = new URIBuilder(SOLR_URL);
                autoSuggestUrl.addParameter("fl", autoSuggestField);                  //Fields to choose
                autoSuggestUrl.addParameter("wt", outputFormat);                                          //Output format
                autoSuggestUrl.addParameter("group", "true");                             //group data
                autoSuggestUrl.addParameter("group.query", "category_id:3");  //group by category
                autoSuggestUrl.addParameter("group.query", "category_id:5");  //group by category
                autoSuggestUrl.addParameter("group.field", "subCategoryId");  //group by subCategory
                autoSuggestUrl.addParameter("group.limit", groupLimit);
                autoSuggestUrl.addParameter("q", "suggest:("+search_text+")");
                URL url = autoSuggestUrl.build().toURL();
                
                InputStream is = url.openStream();
                String jsonString;
                try{
                        jsonString = IOUtils.toString(is, "UTF-8");
                }
                finally{
                        is.close();
                }
                return jsonString; 
        }
        
        public String getSearchResults(String search_text, int offset) throws URISyntaxException, IOException{
                
                URIBuilder generalSearchUrl = new URIBuilder(SOLR_URL);
                generalSearchUrl.addParameter("q", search_text);
                generalSearchUrl.addParameter("fl", searchResultsField);                  //Fields to choose
                generalSearchUrl.addParameter("wt", outputFormat);                                        //Output format
                generalSearchUrl.addParameter("rows", limit);                                     //limit
                generalSearchUrl.setParameter("start", String.valueOf(offset));
                URL url = generalSearchUrl.build().toURL();
                InputStream is = url.openStream();
                String jsonString;
                try{
                        jsonString = IOUtils.toString(is, "UTF-8");
                }
                finally{
                        is.close();
                }
                return jsonString; 
        }

}