Changeset 28029
- Timestamp:
- 2013-08-13T13:27:27+12:00 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/GS2LuceneSearch.java
r27085 r28029 38 38 public class GS2LuceneSearch extends SharedSoleneGS2FieldSearch 39 39 { 40 41 protected static final String SORT_ORDER_PARAM = "sortOrder";42 protected static final String SORT_ORDER_DESCENDING = "1";43 protected static final String SORT_ORDER_ASCENDING = "0";44 45 40 static Logger logger = Logger.getLogger(org.greenstone.gsdl3.service.GS2LuceneSearch.class.getName()); 46 41 … … 58 53 } 59 54 60 /** add in the Lucene specific params to TextQuery */61 protected void addCustomQueryParams(Element param_list, String lang)62 {63 super.addCustomQueryParams(param_list, lang);64 /** Lucene's/Solr's rank param is based on index fields, not ranked/not */65 createParameter(SORT_ORDER_PARAM, param_list, lang);66 }67 68 /** create a param and add to the list */69 protected void createParameter(String name, Element param_list, String lang)70 {71 Element param = null;72 if (name.equals(SORT_ORDER_PARAM)) {73 String[] vals = { SORT_ORDER_ASCENDING, SORT_ORDER_DESCENDING };74 String[] vals_texts = { getTextString("param." + SORT_ORDER_PARAM + "." + SORT_ORDER_ASCENDING, lang), getTextString("param." + SORT_ORDER_PARAM + "." + SORT_ORDER_DESCENDING, lang) };75 76 param = GSXML.createParameterDescription(this.doc, SORT_ORDER_PARAM, getTextString("param." + SORT_ORDER_PARAM, lang), GSXML.PARAM_TYPE_ENUM_SINGLE, SORT_ORDER_ASCENDING, vals, vals_texts);77 }78 79 if (param != null)80 {81 param_list.appendChild(param);82 }83 else84 {85 super.createParameter(name, param_list, lang);86 }87 }88 55 /** methods to handle actually doing the query */ 89 56 … … 99 66 int hits_per_page = 20; 100 67 int start_page = 1; 68 String sort_field = GS2LuceneQuery.SORT_RANK; 69 String sort_order = SORT_ORDER_ASCENDING; 101 70 // set up the query params 102 71 Set entries = params.entrySet(); … … 134 103 else if (name.equals(RANK_PARAM)) 135 104 { 136 if (value.equals(RANK_PARAM_RANK_VALUE)) 137 { 138 value = null; 105 if (value.equals(RANK_PARAM_RANK)) 106 { 107 value = GS2LuceneQuery.SORT_RANK; 108 } else if (value.equals(RANK_PARAM_NONE)) { 109 value = GS2LuceneQuery.SORT_NATURAL; 139 110 } 140 111 this.lucene_src.setSortField(value); 112 sort_field = value; 141 113 } 142 114 else if (name.equals(SORT_ORDER_PARAM)) { 143 if (value.equals(SORT_ORDER_DESCENDING)) { 144 this.lucene_src.setReverseSort(); 145 } 146 } 115 sort_order = value; 116 } 147 117 else if (name.equals(LEVEL_PARAM)) 148 118 { … … 187 157 } 188 158 159 // default order for rank is descending, while for other 160 // fields it is ascending. So reverse_sort is different for 161 // the two cases. 162 if (sort_field.equals(GS2LuceneQuery.SORT_RANK)) { 163 if (sort_order.equals(SORT_ORDER_ASCENDING)) { 164 this.lucene_src.setReverseSort(true); 165 } else { 166 this.lucene_src.setReverseSort(false); 167 } 168 } else { 169 if (sort_order.equals(SORT_ORDER_DESCENDING)) { 170 this.lucene_src.setReverseSort(true); 171 } else { 172 this.lucene_src.setReverseSort(false); 173 } 174 } 189 175 this.lucene_src.setIndexDir(indexdir + index); 190 176 this.lucene_src.initialise();
Note:
See TracChangeset
for help on using the changeset viewer.