| Line 2... |
Line 2... |
| 2 |
|
2 |
|
| 3 |
import in.shop2020.serving.cache.SnippetCacheWrapper;
|
3 |
import in.shop2020.serving.cache.SnippetCacheWrapper;
|
| 4 |
import in.shop2020.serving.cache.EhcacheWrapper.CacheKeys;
|
4 |
import in.shop2020.serving.cache.EhcacheWrapper.CacheKeys;
|
| 5 |
import in.shop2020.serving.services.SolrSearchService;
|
5 |
import in.shop2020.serving.services.SolrSearchService;
|
| 6 |
import in.shop2020.serving.services.SpecialPageConfigurer;
|
6 |
import in.shop2020.serving.services.SpecialPageConfigurer;
|
| - |
|
7 |
import in.shop2020.serving.utils.Utils;
|
| 7 |
|
8 |
|
| 8 |
import java.io.IOException;
|
9 |
import java.io.IOException;
|
| 9 |
import java.net.URLEncoder;
|
10 |
import java.net.URLEncoder;
|
| 10 |
import java.util.ArrayList;
|
11 |
import java.util.ArrayList;
|
| 11 |
import java.util.Arrays;
|
12 |
import java.util.Arrays;
|
| Line 27... |
Line 28... |
| 27 |
@Result(name = "index", location = "special-page-index.vm")
|
28 |
@Result(name = "index", location = "special-page-index.vm")
|
| 28 |
public class SpecialPageController extends BaseController {
|
29 |
public class SpecialPageController extends BaseController {
|
| 29 |
private static final long serialVersionUID = 1L;
|
30 |
private static final long serialVersionUID = 1L;
|
| 30 |
private static Logger log = Logger.getLogger(Class.class);
|
31 |
private static Logger log = Logger.getLogger(Class.class);
|
| 31 |
|
32 |
|
| 32 |
private static final String[] facetDefIDs =
|
33 |
/* private static final String[] facetDefIDs =
|
| 33 |
new String[] {"F_50010","F_50011","F_50002","F_50001", "F_50006", "F_50007" };
|
34 |
new String[] {"F_50010","F_50011","F_50002","F_50001", "F_50006", "F_50007" };
|
| 34 |
|
35 |
|
| 35 |
private static final String[] facetLabels =
|
36 |
private static final String[] facetLabels =
|
| 36 |
new String[] {"Category","Sub Category","Price", "Brand", "Data Connectivity", "Camera Resolution" };
|
37 |
new String[] {"Category","Sub Category","Price", "Brand", "Data Connectivity", "Camera Resolution" };
|
| 37 |
|
38 |
*/
|
| 38 |
private List<String> results;
|
39 |
private List<String> results;
|
| 39 |
private Map<String, String> snippets;
|
40 |
private Map<String, String> snippets;
|
| 40 |
private Map<String, List<String[]>> facets;
|
41 |
private Map<String, List<String[]>> facets;
|
| 41 |
private List<String[]> crumbs;
|
42 |
private List<String[]> crumbs;
|
| 42 |
|
43 |
|
| Line 70... |
Line 71... |
| 70 |
url = "?";
|
71 |
url = "?";
|
| 71 |
|
72 |
|
| 72 |
String urlCrumb = url;
|
73 |
String urlCrumb = url;
|
| 73 |
|
74 |
|
| 74 |
this.crumbs = new ArrayList<String[]>();
|
75 |
this.crumbs = new ArrayList<String[]>();
|
| 75 |
List<String> arrList = Arrays.asList(facetDefIDs);
|
76 |
List<String> arrList = Arrays.asList(Utils.facetDefIDs);
|
| 76 |
|
77 |
|
| 77 |
if(fqrys!= null){
|
78 |
if(fqrys!= null){
|
| 78 |
for(int i=0; i<fqrys.length; i++) {
|
79 |
for(int i=0; i<fqrys.length; i++) {
|
| 79 |
urlCrumb += "&fq=" + URLEncoder.encode(fqrys[i], "UTF-8");
|
80 |
urlCrumb += "&fq=" + URLEncoder.encode(fqrys[i], "UTF-8");
|
| 80 |
priceUrl += "&fq=" + URLEncoder.encode(fqrys[i], "UTF-8");
|
81 |
priceUrl += "&fq=" + URLEncoder.encode(fqrys[i], "UTF-8");
|
| 81 |
String filterUrl = url;
|
82 |
String filterUrl = url;
|
| 82 |
String facetName = StringUtils.split(fqrys[i], ":")[0];
|
83 |
String facetName = StringUtils.split(fqrys[i], ":")[0];
|
| 83 |
String facetValue = StringUtils.split(fqrys[i], ":")[1];
|
84 |
String facetValue = StringUtils.split(fqrys[i], ":")[1];
|
| 84 |
String facetLabel = facetLabels[arrList.indexOf(facetName)];
|
85 |
String facetLabel = Utils.facetLabels[arrList.indexOf(facetName)];
|
| 85 |
this.specialPageTitle += " | " + facetLabel + " " + facetValue;
|
86 |
this.specialPageTitle += " | " + facetLabel + " " + facetValue;
|
| 86 |
this.facetSelection += facetValue + " ";
|
87 |
this.facetSelection += facetValue + " ";
|
| 87 |
for(int j=0; j<fqrys.length; j++) {
|
88 |
for(int j=0; j<fqrys.length; j++) {
|
| 88 |
if(i==j){
|
89 |
if(i==j){
|
| 89 |
continue;
|
90 |
continue;
|
| Line 114... |
Line 115... |
| 114 |
url= url + "&maxPrice=" + this.request.getParameter("maxPrice");
|
115 |
url= url + "&maxPrice=" + this.request.getParameter("maxPrice");
|
| 115 |
}
|
116 |
}
|
| 116 |
|
117 |
|
| 117 |
String sortOrder = "F_50002+asc";
|
118 |
String sortOrder = "F_50002+asc";
|
| 118 |
|
119 |
|
| 119 |
SolrSearchService search = new SolrSearchService(query, fqrys, facetDefIDs, (page-1)*windowSize, windowSize, minPrice, maxPrice, 10000, sortOrder, sourceId);
|
120 |
SolrSearchService search = new SolrSearchService(query, fqrys, Utils.facetDefIDs, (page-1)*windowSize, windowSize, minPrice, maxPrice, 10000, sortOrder, sourceId);
|
| 120 |
this.results = search.getResultMap();
|
121 |
this.results = search.getResultMap();
|
| 121 |
|
122 |
|
| 122 |
|
123 |
|
| 123 |
this.facets = new LinkedHashMap<String, List<String[]>>();
|
124 |
this.facets = new LinkedHashMap<String, List<String[]>>();
|
| 124 |
String qryString = this.request.getQueryString();
|
125 |
String qryString = this.request.getQueryString();
|
| 125 |
log.info("qryString=" + qryString);
|
126 |
log.info("qryString=" + qryString);
|
| 126 |
|
127 |
|
| 127 |
for (int i=0; i<facetDefIDs.length; i++) {
|
128 |
for (int i=0; i<Utils.facetDefIDs.length; i++) {
|
| 128 |
String facetDefID = facetDefIDs[i];
|
129 |
String facetDefID = Utils.facetDefIDs[i];
|
| 129 |
String facetLabel = facetLabels[i];
|
130 |
String facetLabel = Utils.facetLabels[i];
|
| 130 |
Map<String, Integer> facetDetailMap = search.getFacetDetails(facetDefID);
|
131 |
Map<String, Integer> facetDetailMap = search.getFacetDetails(facetDefID);
|
| 131 |
if(facetDetailMap==null)
|
132 |
if(facetDetailMap==null)
|
| 132 |
continue;
|
133 |
continue;
|
| 133 |
List<String[]> values = new ArrayList<String[]>();
|
134 |
List<String[]> values = new ArrayList<String[]>();
|
| 134 |
String drilldownURL = url + "&fq=" + facetDefID + ":";
|
135 |
String drilldownURL = url + "&fq=" + facetDefID + ":";
|