Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
20186 kshitij.so 1
package in.shop2020.dtrapi.controllers;
2
 
3
 
20209 kshitij.so 4
import in.shop2020.dtrapi.services.SolrService;
20186 kshitij.so 5
import java.io.IOException;
6
import java.net.URISyntaxException;
7
 
8
import org.apache.log4j.Logger;
9
 
10
import com.eclipsesource.json.Json;
11
import com.eclipsesource.json.JsonArray;
20231 kshitij.so 12
import com.eclipsesource.json.JsonValue;
20186 kshitij.so 13
 
14
 
15
 
20229 kshitij.so 16
public class SolrSearchController extends BaseController{
20186 kshitij.so 17
	private static Logger log = Logger.getLogger(Class.class);
18
 
19
	private static final long serialVersionUID = 1L;
20209 kshitij.so 20
	private String search_text;
20220 kshitij.so 21
	private String offset;
20209 kshitij.so 22
	private SolrService s =  new SolrService();
20193 kshitij.so 23
 
20186 kshitij.so 24
 
20229 kshitij.so 25
	public String getSuggestions() throws URISyntaxException, IOException{
20186 kshitij.so 26
		try{
20229 kshitij.so 27
			log.info("Calling solr service (auto suggest) for search_text "+search_text);
28
			String jsonString = s.getSuggestions(search_text.trim());
20218 kshitij.so 29
			JsonArray result_json = Json.parse(jsonString).asObject().get("response").asObject().get("docs").asArray();
20216 kshitij.so 30
			setResultJson(result_json.toString());
20186 kshitij.so 31
		}
20209 kshitij.so 32
		catch(Exception e){
33
			e.printStackTrace();
34
			setResultJson(Json.array().asArray().toString());
20186 kshitij.so 35
		}
20209 kshitij.so 36
		return "index";
37
	}
20229 kshitij.so 38
 
39
	public String getSearchResults(){
40
		try{
41
			log.info("Calling solr service (search results) for search_text "+search_text);
42
			String jsonString = s.getSearchResults(search_text.trim(), offset);
43
			JsonArray result_json = Json.parse(jsonString).asObject().get("response").asObject().get("docs").asArray();
20231 kshitij.so 44
			for (JsonValue j : result_json ){
20234 kshitij.so 45
				j.asObject().add("productUrl", j.asObject().get("id").asString()+"/"+j.asObject().get("skuBundleId").asInt());
20231 kshitij.so 46
			}
20229 kshitij.so 47
			setResultJson(result_json.toString());
48
		}
49
		catch(Exception e){
50
			e.printStackTrace();
51
			setResultJson(Json.array().asArray().toString());
52
		}
53
		return "index";
54
	}
20193 kshitij.so 55
 
56
 
20186 kshitij.so 57
	public void setSearch_text(String search_text) {
20213 kshitij.so 58
		log.info("Search text "+search_text);
20186 kshitij.so 59
		this.search_text = search_text;
60
	}
61
 
62
 
63
	public String getSearch_text() {
64
		return search_text;
65
	}
20193 kshitij.so 66
 
20209 kshitij.so 67
 
20186 kshitij.so 68
	public static void main(String[] args) throws URISyntaxException, IOException{
20229 kshitij.so 69
		SolrSearchController a =  new SolrSearchController();
20209 kshitij.so 70
		a.setSearch_text("iphone tempered");
20229 kshitij.so 71
		a.getSuggestions();
20186 kshitij.so 72
		System.out.println(a.getResultJson());
73
	}
20193 kshitij.so 74
 
20220 kshitij.so 75
 
76
	public void setOffset(String offset) {
77
		this.offset = offset;
78
	}
79
 
80
 
81
	public String getOffset() {
82
		return offset;
83
	}
84
 
20186 kshitij.so 85
}