Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
21285 kshitij.so 1
package com.spice.profitmandi.web.services;
2
 
3
 
4
import java.io.IOException;
5
import java.io.InputStream;
6
import java.net.URISyntaxException;
7
import java.net.URL;
8
 
9
import org.apache.commons.io.IOUtils;
10
import org.apache.http.client.utils.URIBuilder;
21339 kshitij.so 11
import org.slf4j.Logger;
12
import org.slf4j.LoggerFactory;
13
import org.springframework.beans.factory.annotation.Value;
21287 kshitij.so 14
import org.springframework.stereotype.Component;
21285 kshitij.so 15
 
21339 kshitij.so 16
import com.spice.profitmandi.web.controller.SolrSearchController;
21285 kshitij.so 17
 
21339 kshitij.so 18
 
21287 kshitij.so 19
@Component
21285 kshitij.so 20
public class SolrService{
21
 
21339 kshitij.so 22
	private static final Logger logger=LoggerFactory.getLogger(SolrService.class);
21285 kshitij.so 23
 
21339 kshitij.so 24
	@Value("${solr.url}")
25
	private String SOLR_URL;
26
	//private static final String SOLR_URL="http://192.168.158.89:8983/solr/collection1/select";
21285 kshitij.so 27
	private static final String limit ="20";
28
	private static final String groupLimit = "10";
29
	private static final String autoSuggestField = "title,subCategoryId,category_id,category,subCategory,score";
30
	private static final String searchResultsField = "title,skuBundleId,id,thumbnail,ids";
31
	private static final String outputFormat = "json";
32
 
33
 
34
 
35
	public String getSuggestions(String search_text) throws URISyntaxException, IOException{
21339 kshitij.so 36
 
37
		logger.info("Solr url "+SOLR_URL);
21285 kshitij.so 38
		URIBuilder autoSuggestUrl = new URIBuilder(SOLR_URL);
39
		autoSuggestUrl.addParameter("fl", autoSuggestField);                  //Fields to choose
40
		autoSuggestUrl.addParameter("wt", outputFormat); 					  //Output format
41
		autoSuggestUrl.addParameter("group", "true"); 				  //group data
42
		autoSuggestUrl.addParameter("group.query", "category_id:3");  //group by category
43
		autoSuggestUrl.addParameter("group.query", "category_id:5");  //group by category
44
		autoSuggestUrl.addParameter("group.field", "subCategoryId");  //group by subCategory
45
		autoSuggestUrl.addParameter("group.limit", groupLimit);
46
		autoSuggestUrl.addParameter("q", "suggest:("+search_text+")");
47
		URL url = autoSuggestUrl.build().toURL();
48
 
49
		InputStream is = url.openStream();
50
		String jsonString;
51
		try{
52
			jsonString = IOUtils.toString(is, "UTF-8");
53
		}
54
		finally{
55
			is.close();
56
		}
57
		return jsonString; 
58
	}
59
 
21287 kshitij.so 60
	public String getSearchResults(String search_text, int offset) throws URISyntaxException, IOException{
21339 kshitij.so 61
		logger.info("Solr url "+SOLR_URL);
21285 kshitij.so 62
		URIBuilder generalSearchUrl = new URIBuilder(SOLR_URL);
63
		generalSearchUrl.addParameter("q", search_text);
64
		generalSearchUrl.addParameter("fl", searchResultsField);                  //Fields to choose
65
		generalSearchUrl.addParameter("wt", outputFormat); 					  //Output format
66
		generalSearchUrl.addParameter("rows", limit);             			  //limit
21288 kshitij.so 67
		generalSearchUrl.setParameter("start", String.valueOf(offset));
21285 kshitij.so 68
		URL url = generalSearchUrl.build().toURL();
69
		InputStream is = url.openStream();
70
		String jsonString;
71
		try{
72
			jsonString = IOUtils.toString(is, "UTF-8");
73
		}
74
		finally{
75
			is.close();
76
		}
77
		return jsonString; 
78
	}
79
 
80
}