Subversion Repositories SmartDukaan

Rev

Rev 21339 | Rev 21517 | 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
 
16
 
21287 kshitij.so 17
@Component
21285 kshitij.so 18
public class SolrService{
19
 
21339 kshitij.so 20
	private static final Logger logger=LoggerFactory.getLogger(SolrService.class);
21285 kshitij.so 21
 
21339 kshitij.so 22
	@Value("${solr.url}")
23
	private String SOLR_URL;
24
	//private static final String SOLR_URL="http://192.168.158.89:8983/solr/collection1/select";
21285 kshitij.so 25
	private static final String limit ="20";
26
	private static final String groupLimit = "10";
27
	private static final String autoSuggestField = "title,subCategoryId,category_id,category,subCategory,score";
28
	private static final String searchResultsField = "title,skuBundleId,id,thumbnail,ids";
29
	private static final String outputFormat = "json";
30
 
31
 
32
 
33
	public String getSuggestions(String search_text) throws URISyntaxException, IOException{
21339 kshitij.so 34
 
35
		logger.info("Solr url "+SOLR_URL);
21285 kshitij.so 36
		URIBuilder autoSuggestUrl = new URIBuilder(SOLR_URL);
37
		autoSuggestUrl.addParameter("fl", autoSuggestField);                  //Fields to choose
38
		autoSuggestUrl.addParameter("wt", outputFormat); 					  //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", groupLimit);
44
		autoSuggestUrl.addParameter("q", "suggest:("+search_text+")");
45
		URL url = autoSuggestUrl.build().toURL();
46
 
47
		InputStream is = url.openStream();
48
		String jsonString;
49
		try{
50
			jsonString = IOUtils.toString(is, "UTF-8");
51
		}
52
		finally{
53
			is.close();
54
		}
55
		return jsonString; 
56
	}
57
 
21287 kshitij.so 58
	public String getSearchResults(String search_text, int offset) throws URISyntaxException, IOException{
21339 kshitij.so 59
		logger.info("Solr url "+SOLR_URL);
21285 kshitij.so 60
		URIBuilder generalSearchUrl = new URIBuilder(SOLR_URL);
61
		generalSearchUrl.addParameter("q", search_text);
62
		generalSearchUrl.addParameter("fl", searchResultsField);                  //Fields to choose
63
		generalSearchUrl.addParameter("wt", outputFormat); 					  //Output format
64
		generalSearchUrl.addParameter("rows", limit);             			  //limit
21288 kshitij.so 65
		generalSearchUrl.setParameter("start", String.valueOf(offset));
21285 kshitij.so 66
		URL url = generalSearchUrl.build().toURL();
67
		InputStream is = url.openStream();
68
		String jsonString;
69
		try{
70
			jsonString = IOUtils.toString(is, "UTF-8");
71
		}
72
		finally{
73
			is.close();
74
		}
75
		return jsonString; 
76
	}
77
 
78
}