Subversion Repositories SmartDukaan

Rev

Rev 20219 | Rev 20230 | 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{
20227 kshitij.so 26
		synchronized(SolrService.class){
27
			try {
28
				SOLR_URL = ConfigClient.getClient().get("dtr_solr_url");
29
			} catch (ConfigException e) {
30
				log.error("Error while gettting dtr_solr_url param from config service", e);
31
				SOLR_URL = "http://localhost:8983/solr/collection1/select";
32
			}
33
			try {
34
				autoSuggestUrl = new URIBuilder(SOLR_URL);
35
			} catch (URISyntaxException e) {
36
				log.error("Error while building solr_url "+e);
37
			}
38
			autoSuggestUrl.addParameter("fl", "title,subCategoryId,category_id,category,subCategory,score");  //Fields to choose
39
			autoSuggestUrl.addParameter("wt", "json"); 					  //Output format
40
			autoSuggestUrl.addParameter("rows", "20");             //search limit for each grouped field or query
41
 
42
			generalSearchUrl.addParameter("fl", "title,skuBundleId,id,thumbnail");
43
			generalSearchUrl.addParameter("wt", "json");
44
			autoSuggestUrl.addParameter("rows", "20");
20210 kshitij.so 45
		}
46
	}
47
 
20227 kshitij.so 48
	public String getSuggestions(String search_text) throws URISyntaxException, IOException{
20215 kshitij.so 49
		autoSuggestUrl.setParameter("q", "suggest:("+search_text+")");
20227 kshitij.so 50
		URL url = autoSuggestUrl.build().toURL();
51
		log.info("Search Url "+url.toString());
52
		InputStream is = url.openStream();
53
		String jsonString;
54
		try{
55
			jsonString = IOUtils.toString(is, "UTF-8");
56
		}
57
		finally{
58
			is.close();
59
		}
60
		return jsonString; 
61
	}
62
 
63
	public String getSearchResults(String search_text, String offset) throws URISyntaxException, IOException{
64
		generalSearchUrl.setParameter("q", search_text);
20219 kshitij.so 65
		if (offset!=null && !offset.isEmpty()){
20227 kshitij.so 66
			generalSearchUrl.setParameter("start", offset);
20219 kshitij.so 67
		}
20227 kshitij.so 68
		URL url = generalSearchUrl.build().toURL();
20210 kshitij.so 69
		log.info("Search Url "+url.toString());
70
		InputStream is = url.openStream();
71
		String jsonString;
72
		try{
73
			jsonString = IOUtils.toString(is, "UTF-8");
74
		}
75
		finally{
76
			is.close();
77
		}
78
		return jsonString; 
79
	}
80
 
81
}