Subversion Repositories SmartDukaan

Rev

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

package in.shop2020.dtrapi.controllers;


import in.shop2020.dtrapi.services.SolrService;
import java.io.IOException;
import java.net.URISyntaxException;

import org.apache.log4j.Logger;

import com.eclipsesource.json.Json;
import com.eclipsesource.json.JsonArray;
import com.eclipsesource.json.JsonValue;



public class SolrSearchController extends BaseController{
        private static Logger log = Logger.getLogger(Class.class);

        private static final long serialVersionUID = 1L;
        private String search_text;
        private String offset;
        private SolrService s =  new SolrService();


        public String getSuggestions() throws URISyntaxException, IOException{
                try{
                        log.info("Calling solr service (auto suggest) for search_text "+search_text);
                        String jsonString = s.getSuggestions(search_text.trim());
                        JsonArray result_json = Json.parse(jsonString).asObject().get("response").asObject().get("docs").asArray();
                        setResultJson(result_json.toString());
                }
                catch(Exception e){
                        e.printStackTrace();
                        setResultJson(Json.array().asArray().toString());
                }
                return "index";
        }
        
        public String getSearchResults(){
                try{
                        log.info("Calling solr service (search results) for search_text "+search_text);
                        String jsonString = s.getSearchResults(search_text.trim(), offset);
                        JsonArray result_json = Json.parse(jsonString).asObject().get("response").asObject().get("docs").asArray();
                        for (JsonValue j : result_json ){
                                j.asObject().add("productUrl", j.asObject().get("id").asString()+"/"+j.asObject().get("skuBundleId").asInt());
                        }
                        setResultJson(result_json.toString());
                }
                catch(Exception e){
                        e.printStackTrace();
                        setResultJson(Json.array().asArray().toString());
                }
                return "index";
        }


        public void setSearch_text(String search_text) {
                log.info("Search text "+search_text);
                this.search_text = search_text;
        }


        public String getSearch_text() {
                return search_text;
        }


        public static void main(String[] args) throws URISyntaxException, IOException{
                SolrSearchController a =  new SolrSearchController();
                a.setSearch_text("iphone tempered");
                a.getSuggestions();
                System.out.println(a.getResultJson());
        }


        public void setOffset(String offset) {
                this.offset = offset;
        }


        public String getOffset() {
                return offset;
        }

}