Subversion Repositories SmartDukaan

Rev

Rev 20210 | Rev 20215 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
20210 kshitij.so 1
package in.shop2020.dtrapi.services;
2
 
3
import in.shop2020.config.ConfigException;
4
import in.shop2020.thrift.clients.config.ConfigClient;
5
 
6
import java.io.IOException;
7
import java.io.InputStream;
8
import java.net.MalformedURLException;
9
import java.net.URISyntaxException;
10
import java.net.URL;
11
 
12
import org.apache.commons.io.IOUtils;
13
import org.apache.http.client.utils.URIBuilder;
14
import org.apache.log4j.Logger;
15
 
16
 
17
 
18
public class SolrService{
19
 
20
	private static URIBuilder autoSuggestUrl;
21
	private static URIBuilder generalSearchUrl;
22
	private static String SOLR_URL;
23
	private static Logger log = Logger.getLogger(Class.class);
24
 
25
	static{
20214 kshitij.so 26
		try {
27
			SOLR_URL = ConfigClient.getClient().get("dtr_solr_url");
28
		} catch (ConfigException e) {
29
			log.error("Error while gettting dtr_solr_url param from config service", e);
30
			SOLR_URL = "http://localhost:8983/solr/collection1/select";
20210 kshitij.so 31
		}
20214 kshitij.so 32
		try {
33
			autoSuggestUrl = new URIBuilder(SOLR_URL);
34
		} catch (URISyntaxException e) {
35
			log.error("Error while building solr_url "+e);
36
		}
37
		autoSuggestUrl.addParameter("fl", "title,subCategoryId,category_id,category,subCategory,score");  //Fields to choose
38
		autoSuggestUrl.addParameter("wt", "json"); 					  //Output format
39
		autoSuggestUrl.addParameter("group", "true"); 				  //group data
40
		autoSuggestUrl.addParameter("group.query", "category_id:3");  //group by category
41
		autoSuggestUrl.addParameter("group.query", "category_id:5");  //group by category
42
		autoSuggestUrl.addParameter("group.field", "subCategoryId");  //group by subCategory
43
		autoSuggestUrl.addParameter("group.limit", "10");             //search limit for each grouped field or query 
20210 kshitij.so 44
	}
45
 
46
	public String getSuggestions(String search_text) throws URISyntaxException, IOException{
47
		autoSuggestUrl.addParameter("q", "suggest:("+search_text+")");
48
		URL url = autoSuggestUrl.build().toURL();
49
		log.info("Search Url "+url.toString());
50
		InputStream is = url.openStream();
51
		String jsonString;
52
		try{
53
			jsonString = IOUtils.toString(is, "UTF-8");
54
		}
55
		finally{
56
			is.close();
57
		}
58
		return jsonString; 
59
	}
60
 
61
}