Changeset 28181 for main/trunk
- Timestamp:
- 2013-08-29T15:03:53+12:00 (11 years ago)
- Location:
- main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/AbstractGS2FieldSearch.java
r25893 r28181 94 94 public AbstractGS2FieldSearch() 95 95 { 96 super(); 97 paramDefaults.put(RANK_PARAM, RANK_PARAM_RANK); 98 paramDefaults.put(FIELD_COMBINE_PARAM, FIELD_COMBINE_PARAM_AND); 99 // paramDefaults.put(FIELD_CASE_PARAM, BOOLEAN_PARAM_ON); 100 // paramDefaults.put(FIELD_STEM_PARAM, BOOLEAN_PARAM_OFF); 101 // paramDefaults.put(FIELD_ACCENT_PARAM, BOOLEAN_PARAM_ON); 96 102 } 97 103 … … 108 114 return false; 109 115 } 110 116 111 117 // Get the default level out of <defaultLevel> (buildConfig.xml) 112 118 Element def = (Element) GSXML.getChildByTagName(info, DEFAULT_LEVEL_ELEM); … … 260 266 } 261 267 268 // if field case/stem/accent defaults are not specified explicitly, we should use case/stem/accent defaults 269 protected void getSearchParamDefaults(Element search_elem) { 270 271 boolean found_f_stem = false; 272 boolean found_f_case = false; 273 boolean found_f_accent = false; 274 NodeList param_defaults_list = GSXML.getChildrenByTagName(search_elem, GSXML.PARAM_DEFAULT_ELEM); 275 for (int i=0; i<param_defaults_list.getLength(); i++) { 276 Element paramdef = (Element)param_defaults_list.item(i); 277 String name = paramdef.getAttribute(GSXML.NAME_ATT); 278 String val = paramdef.getAttribute(GSXML.VALUE_ATT); 279 if (!name.equals("") && !val.equals("")) { 280 paramDefaults.put(name, val); 281 if (name.equals(FIELD_STEM_PARAM)) { 282 found_f_stem = true; 283 } else if (name.equals(FIELD_CASE_PARAM)) { 284 found_f_case = true; 285 } else if (name.equals(FIELD_ACCENT_PARAM)) { 286 found_f_accent = true; 287 } 288 if (!found_f_stem) { 289 paramDefaults.put (FIELD_STEM_PARAM, paramDefaults.get(STEM_PARAM)); 290 } 291 if (!found_f_case) { 292 paramDefaults.put (FIELD_CASE_PARAM, paramDefaults.get(CASE_PARAM)); 293 } 294 if (!found_f_accent) { 295 paramDefaults.put (FIELD_ACCENT_PARAM, paramDefaults.get(ACCENT_PARAM)); 296 } 297 298 } 299 } 300 } 262 301 protected Element getServiceDescription(String service_id, String lang, String subset) 263 302 { … … 393 432 { 394 433 Element param = null; 434 String param_default = paramDefaults.get(name); 395 435 if (name.equals(LEVEL_PARAM)) 396 436 { … … 416 456 String[] vals1_texts = { getTextString("param." + RANK_PARAM + "." + RANK_PARAM_RANK, lang), getTextString("param." + RANK_PARAM + "." + RANK_PARAM_NONE, lang) }; 417 457 418 param = GSXML.createParameterDescription(this.doc, RANK_PARAM, getTextString("param." + RANK_PARAM, lang), GSXML.PARAM_TYPE_ENUM_SINGLE, RANK_PARAM_RANK, vals1, vals1_texts);458 param = GSXML.createParameterDescription(this.doc, RANK_PARAM, getTextString("param." + RANK_PARAM, lang), GSXML.PARAM_TYPE_ENUM_SINGLE, param_default, vals1, vals1_texts); 419 459 420 460 } … … 428 468 String[] bool_ops = { "0", "1" }; 429 469 String[] bool_texts = { getTextString("param.boolean.off", lang, "AbstractTextSearch"), getTextString("param.boolean.on", lang, "AbstractTextSearch") }; 430 param = GSXML.createParameterDescription(this.doc, name, getTextString("param." + name, lang), GSXML.PARAM_TYPE_BOOLEAN, BOOLEAN_PARAM_ON, bool_ops, bool_texts);470 param = GSXML.createParameterDescription(this.doc, name, getTextString("param." + name, lang), GSXML.PARAM_TYPE_BOOLEAN, param_default, bool_ops, bool_texts); 431 471 432 472 } … … 454 494 String[] val_texts = { getTextString("param." + FIELD_COMBINE_PARAM + "." + FIELD_COMBINE_PARAM_AND, lang), getTextString("param." + FIELD_COMBINE_PARAM + "." + FIELD_COMBINE_PARAM_OR, lang), getTextString("param." + FIELD_COMBINE_PARAM + "." + FIELD_COMBINE_PARAM_NOT, lang) }; 455 495 456 param = GSXML.createParameterDescription(this.doc, FIELD_COMBINE_PARAM, "", GSXML.PARAM_TYPE_ENUM_SINGLE, FIELD_COMBINE_PARAM_AND, vals, val_texts);496 param = GSXML.createParameterDescription(this.doc, FIELD_COMBINE_PARAM, "", GSXML.PARAM_TYPE_ENUM_SINGLE, param_default, vals, val_texts); 457 497 param.setAttribute(GSXML.PARAM_IGNORE_POS_ATT, "0"); 458 498 } -
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/AbstractGS2TextSearch.java
r26344 r28181 56 56 protected boolean does_accent = false; 57 57 58 // default values for stem indexes59 protected String case_default = BOOLEAN_PARAM_ON;60 protected String accent_default = BOOLEAN_PARAM_ON;61 protected String stem_default = BOOLEAN_PARAM_OFF;62 58 // maxnumeric - 63 59 protected int maxnumeric = 4; … … 186 182 Document owner = info.getOwnerDocument(); 187 183 Element config_search = (Element) GSXML.getChildByTagName(extra_info, GSXML.SEARCH_ELEM); 188 189 // work out what the default values for the stemming options are190 if (does_case || does_accent || does_stem) {191 // only bother looking for this is we have some of these set192 NodeList index_options = config_search.getElementsByTagName(GSXML.INDEX_OPTION_ELEM);193 for (int i = 0; i < index_options.getLength(); i++) {194 Element ind = (Element) index_options.item(i);195 String name = ind.getAttribute(GSXML.NAME_ATT);196 String def_val = ind.getAttribute(GSXML.DEFAULT_ATT);197 198 if (!def_val.equals("")) {199 if (name.equals("stem")) {200 stem_default = (def_val.equals("on")? BOOLEAN_PARAM_ON: BOOLEAN_PARAM_OFF);201 } else if (name.equals("casefold")) {202 case_default = (def_val.equals("on")? BOOLEAN_PARAM_ON: BOOLEAN_PARAM_OFF);203 } else if (name.equals("accentfold")) {204 accent_default = (def_val.equals("on")? BOOLEAN_PARAM_ON: BOOLEAN_PARAM_OFF);205 }206 }207 }208 }209 184 210 185 // so far we have index and indexSubcollection specific display elements, and global format elements … … 354 329 if (this.does_case) 355 330 { 356 createParameter(CASE_PARAM, param_list, lang, case_default);331 createParameter(CASE_PARAM, param_list, lang);//, case_default); 357 332 } 358 333 if (this.does_stem) 359 334 { 360 createParameter(STEM_PARAM, param_list, lang, stem_default);335 createParameter(STEM_PARAM, param_list, lang);//, stem_default); 361 336 } 362 337 if (this.does_accent) 363 338 { 364 createParameter(ACCENT_PARAM, param_list, lang, accent_default);339 createParameter(ACCENT_PARAM, param_list, lang);//, accent_default); 365 340 } 366 341 createParameter(MATCH_PARAM, param_list, lang); -
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/AbstractSearch.java
r26042 r28181 21 21 // Greenstone classes 22 22 import java.util.ArrayList; 23 import java.util.HashMap; 23 24 24 25 import org.apache.log4j.Logger; … … 74 75 protected String default_index = ""; 75 76 76 protected String default_max_docs = "100"; 77 78 protected String default_hits_per_page = "10"; 77 protected HashMap<String, String> paramDefaults = null; 79 78 80 79 public AbstractSearch() 81 80 { 81 paramDefaults = new HashMap<String, String>(); 82 paramDefaults.put(MAXDOCS_PARAM, "100"); 83 paramDefaults.put(HITS_PER_PAGE_PARAM, "10"); 84 paramDefaults.put(START_PAGE_PARAM, "1"); 82 85 } 83 86 … … 108 111 this.short_service_info.appendChild(tq_service); 109 112 113 // load up any search param defaults 114 Element search_elem = (Element) GSXML.getChildByTagName(extra_info, GSXML.SEARCH_ELEM); 115 if (search_elem != null) { 116 getSearchParamDefaults(search_elem); 117 } 110 118 // add some format info to service map if there is any 111 119 // => lookin extra info first look in buildConfig … … 115 123 if (format == null) 116 124 { 117 String path = GSPath.appendLink(GSXML.SEARCH_ELEM, GSXML.FORMAT_ELEM); 118 119 // Note by xiao: instead of retrieving the first 'format' 120 // element inside the 'search' element, we are trying to 121 // find the real format element which has at least one 122 // 'gsf:template' child element. (extra_info is 123 // collectionConfig.xml) 124 125 //format = (Element) GSXML.getNodeByPath(extra_info, path); 126 127 Element search_elem = (Element) GSXML.getChildByTagName(extra_info, GSXML.SEARCH_ELEM); 125 // try to find a format element inside <search> that contains a gsf:template. Note what if we have only xsl:templates?? 126 128 127 NodeList format_elems = null; 129 128 if (search_elem != null) … … 169 168 } 170 169 170 protected void getSearchParamDefaults(Element search_elem) { 171 172 NodeList param_defaults_list = GSXML.getChildrenByTagName(search_elem, GSXML.PARAM_DEFAULT_ELEM); 173 for (int i=0; i<param_defaults_list.getLength(); i++) { 174 Element paramdef = (Element)param_defaults_list.item(i); 175 String name = paramdef.getAttribute(GSXML.NAME_ATT); 176 String val = paramdef.getAttribute(GSXML.VALUE_ATT); 177 if (!name.equals("") && !val.equals("")) { 178 paramDefaults.put(name, val); 179 } 180 } 181 } 171 182 /** 172 183 * returns a basic description for QUERY_SERVICE. If a subclass provides … … 273 284 Element param = null; 274 285 String param_default = default_value; 275 286 if (default_value == null) { 287 // have we got a stored up default? will be null if not there 288 param_default = paramDefaults.get(name); 289 } 276 290 if (name.equals(QUERY_PARAM) || name.equals(RAW_PARAM)) 277 291 { … … 301 315 else if (name.equals(MAXDOCS_PARAM)) 302 316 { 303 if (param_default == null)304 {305 param_default = this.default_max_docs;306 }307 308 317 param = GSXML.createParameterDescription(this.doc, name, getTextString("param." + name, lang), GSXML.PARAM_TYPE_INTEGER, param_default, null, null); 309 318 param_list.appendChild(param); … … 312 321 else if (name.equals(HITS_PER_PAGE_PARAM)) 313 322 { 314 if (param_default == null)315 {316 param_default = this.default_hits_per_page;317 }318 319 323 param = GSXML.createParameterDescription(this.doc, name, getTextString("param." + name, lang), GSXML.PARAM_TYPE_INTEGER, param_default, null, null); 320 324 param_list.appendChild(param); … … 323 327 else if (name.equals(START_PAGE_PARAM)) 324 328 { 325 if (param_default == null)326 {327 param_default = "1";328 }329 330 329 // start page - set to 1 for the search page 331 330 param = GSXML.createParameterDescription(this.doc, START_PAGE_PARAM, "", GSXML.PARAM_TYPE_INVISIBLE, param_default, null, null); -
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/AbstractTextSearch.java
r26249 r28181 60 60 public AbstractTextSearch() 61 61 { 62 super(); 62 63 // the search service 63 64 QUERY_SERVICE = "TextQuery"; 65 paramDefaults.put(CASE_PARAM, BOOLEAN_PARAM_ON); 66 paramDefaults.put(STEM_PARAM, BOOLEAN_PARAM_OFF); 67 paramDefaults.put(ACCENT_PARAM, BOOLEAN_PARAM_ON); 68 paramDefaults.put(MATCH_PARAM, MATCH_PARAM_SOME); 64 69 } 65 70 … … 87 92 Element param = null; 88 93 String param_default = default_value; 94 if (default_value == null) { 95 // have we got a stored up default? will be null if not there 96 param_default = paramDefaults.get(name); 97 } 89 98 90 99 if (super.createParameterChain(name, param_list, lang, default_value)) … … 94 103 } 95 104 // otherwise look to see if it is a text specific parameter 96 elseif (name.equals(INDEX_SUBCOLLECTION_PARAM))105 if (name.equals(INDEX_SUBCOLLECTION_PARAM)) 97 106 { 98 107 Element index_sub_list = (Element) GSXML.getChildByTagName(this.config_info, INDEX_SUBCOLLECTION_ELEM + GSXML.LIST_MODIFIER); … … 137 146 } 138 147 else if (name.equals(CASE_PARAM) || name.equals(STEM_PARAM) || name.equals(ACCENT_PARAM)) { 139 if (param_default == null) {140 param_default = BOOLEAN_PARAM_OFF;141 }142 148 String[] bool_ops = {"0", "1"}; 143 149 String[] bool_texts = {getTextString("param.boolean.off", lang),getTextString("param.boolean.on", lang)}; … … 146 152 return true; 147 153 } else if (name.equals(MATCH_PARAM)) { 148 if (param_default == null) {149 param_default = MATCH_PARAM_SOME;150 }151 154 152 155 String[] vals = {MATCH_PARAM_SOME, MATCH_PARAM_ALL }; -
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/GS2MGPPSearch.java
r27950 r28181 102 102 // we have case folding on by default 103 103 if (this.does_case) { 104 mgpp_src.setCase( case_default.equals(BOOLEAN_PARAM_ON) ? true : false);104 mgpp_src.setCase(paramDefaults.get(CASE_PARAM).equals(BOOLEAN_PARAM_ON) ? true : false); 105 105 } 106 106 if (this.does_stem) { 107 mgpp_src.setStem( stem_default.equals(BOOLEAN_PARAM_ON) ? true : false);107 mgpp_src.setStem(paramDefaults.get(STEM_PARAM).equals(BOOLEAN_PARAM_ON) ? true : false); 108 108 } 109 109 if (this.does_accent) { 110 mgpp_src.setAccentFold( accent_default.equals(BOOLEAN_PARAM_ON) ? true : false);110 mgpp_src.setAccentFold(paramDefaults.get(ACCENT_PARAM).equals(BOOLEAN_PARAM_ON) ? true : false); 111 111 } 112 112 // set up the query params -
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/GoogleNgramMGPPSearch.java
r25635 r28181 37 37 extends GS2MGPPSearch { 38 38 static Logger logger = Logger.getLogger(org.greenstone.gsdl3.service.GoogleNgramMGPPSearch.class.getName()); 39 39 40 protected String default_max_docs = "-1"; 41 protected String default_hits_per_page = "30"; 40 42 /** constructor */ 41 43 public GoogleNgramMGPPSearch(){ -
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/SharedSoleneGS2FieldSearch.java
r28061 r28181 46 46 protected SharedSoleneQuery solene_src = null; 47 47 48 48 49 public SharedSoleneGS2FieldSearch() 49 50 { 51 super(); 50 52 // Lucene/Solr uses double operators, not single 51 53 AND_OPERATOR = "&&"; … … 54 56 does_paging = true; 55 57 does_chunking = true; 58 paramDefaults.put(SORT_ORDER_PARAM, SORT_ORDER_DESCENDING); 56 59 } 57 60 … … 67 70 Element config_search = (Element) GSXML.getChildByTagName(extra_info, GSXML.SEARCH_ELEM); 68 71 Document owner = info.getOwnerDocument(); 69 // get out the sort fields72 // find the sort fields in serviceRack xml, and add in the deisplayItems if any 70 73 NodeList sort_nodes = info.getElementsByTagName(SORT_ELEM); 71 74 … … 115 118 { 116 119 Element param = null; 120 String param_default = paramDefaults.get(name); 117 121 if (name.equals(RANK_PARAM)) 118 122 { … … 120 124 ArrayList<String> fields = new ArrayList<String>(); 121 125 ArrayList<String> field_names = new ArrayList<String>(); 122 if (getSortData(fields, field_names, lang)) { 123 124 param = GSXML.createParameterDescription2(this.doc, name, getTextString("param." + name, lang), GSXML.PARAM_TYPE_ENUM_SINGLE, fields.get(0), fields, field_names); 126 if (!getSortData(fields, field_names, lang)) { 127 fields.add(RANK_PARAM_RANK); 128 fields.add(RANK_PARAM_NONE); 129 field_names.add(getTextString("param." + RANK_PARAM + "." + RANK_PARAM_RANK, lang)); 130 field_names.add(getTextString("param." + RANK_PARAM + "." + RANK_PARAM_NONE, lang)); 125 131 } 132 133 param = GSXML.createParameterDescription2(this.doc, name, getTextString("param." + name, lang), GSXML.PARAM_TYPE_ENUM_SINGLE, fields.get(0), fields, field_names); 134 126 135 } else if (name.equals(SORT_ORDER_PARAM)) { 127 136 String[] vals = { SORT_ORDER_ASCENDING, SORT_ORDER_DESCENDING }; 128 137 String[] vals_texts = { getTextString("param." + SORT_ORDER_PARAM + "." + SORT_ORDER_ASCENDING, lang), getTextString("param." + SORT_ORDER_PARAM + "." + SORT_ORDER_DESCENDING, lang) }; 129 138 130 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);139 param = GSXML.createParameterDescription(this.doc, SORT_ORDER_PARAM, getTextString("param." + SORT_ORDER_PARAM, lang), GSXML.PARAM_TYPE_ENUM_SINGLE, SORT_ORDER_DESCENDING, vals, vals_texts); 131 140 } 132 141
Note:
See TracChangeset
for help on using the changeset viewer.