Changeset 29558
- Timestamp:
- 2014-12-08T14:46:32+13:00 (9 years ago)
- Location:
- main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/AbstractGS2FieldSearch.java
r29318 r29558 328 328 329 329 addCustomQueryParams(param_list, lang); 330 createParameter(MAXDOCS_PARAM, param_list, lang);331 330 if (!default_index_subcollection.equals("")) 332 331 { … … 338 337 } 339 338 339 if (does_chunking) { 340 createParameter(MAXDOCS_PARAM, param_list, lang); 341 } 340 342 if (does_paging) 341 343 { … … 361 363 { 362 364 addCustomQueryParamsAdvField(param_list, lang); 363 createParameter(MAXDOCS_PARAM, param_list, lang);364 365 if (!default_index_subcollection.equals("")) 365 366 { … … 394 395 { 395 396 createParameter(FIELD_ACCENT_PARAM, multiparam, lang); 397 } 398 if (does_chunking) { 399 createParameter(MAXDOCS_PARAM, param_list, lang); 396 400 } 397 401 if (does_paging) … … 673 677 674 678 // add a metadata item to specify docs returned 675 int docs_returned = docs.length; 676 if (does_paging) 677 { 679 if (does_chunking) // this means we have a max docs param, and might ask for only a subset of results 680 { 681 logger.error("does_chunking = true"); 682 int docs_returned = docs.length; 678 683 String maxdocs_str = (String) params.get(MAXDOCS_PARAM); 679 684 if (maxdocs_str != null) 680 685 { 681 686 int maxdocs = Integer.parseInt(maxdocs_str); 682 docs_returned = (maxdocs < (int) totalDocs ? maxdocs : (int) totalDocs); 683 } 684 } 685 GSXML.addMetadata(metadata_list, "numDocsReturned", "" + docs_returned); 687 if (maxdocs > 0) { // maxdocs==-1 means return all 688 docs_returned = (maxdocs < (int) totalDocs ? maxdocs : (int) totalDocs); 689 } 690 } 691 GSXML.addMetadata(metadata_list, "numDocsReturned", "" + docs_returned); 692 } 693 686 694 687 695 // add a metadata item to specify what actual query was done - eg if stuff was stripped out etc. and then we can use the query later, cos we don't know which parameter was the query -
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/AbstractGS2TextSearch.java
r28966 r29558 117 117 118 118 // do we support any of the extended features? 119 does_chunking = true;119 //does_chunking = true; 120 120 121 121 // Get the default index out of <defaultIndex> (buildConfig.xml) -
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/AbstractSearch.java
r29426 r29558 28 28 import org.greenstone.gsdl3.util.GSPath; 29 29 import org.greenstone.gsdl3.util.GSXML; 30 import org.greenstone.gsdl3.util.XMLConverter; 30 31 import org.w3c.dom.Document; 31 32 import org.w3c.dom.Element; … … 76 77 protected String default_index = ""; 77 78 79 protected Element service_metadata_list = null; 78 80 protected HashMap<String, String> paramDefaults = null; 79 81 … … 81 83 { 82 84 paramDefaults = new HashMap<String, String>(); 83 paramDefaults.put(MAXDOCS_PARAM, "100");84 paramDefaults.put(HITS_PER_PAGE_PARAM, "20");85 paramDefaults.put(START_PAGE_PARAM, "1");86 85 } 87 86 … … 111 110 tq_service.setAttribute(GSXML.NAME_ATT, QUERY_SERVICE); 112 111 this.short_service_info.appendChild(tq_service); 112 113 // load up paging defaults 114 if (does_chunking) { 115 paramDefaults.put(MAXDOCS_PARAM, "100"); 116 } 117 if (does_paging) { 118 paramDefaults.put(HITS_PER_PAGE_PARAM, "20"); 119 paramDefaults.put(START_PAGE_PARAM, "1"); 120 } 113 121 114 122 // load up any search param defaults … … 208 216 tq_service.appendChild(param_list); 209 217 } 218 if (subset == null || subset.equals(GSXML.METADATA_ELEM + GSXML.LIST_MODIFIER)) { 219 220 if (service_metadata_list == null) { 221 Document ml_doc = XMLConverter.newDOM(); 222 service_metadata_list = ml_doc.createElement(GSXML.METADATA_ELEM+GSXML.LIST_MODIFIER); 223 if (does_paging) { 224 service_metadata_list.appendChild(GSXML.createMetadataElement(ml_doc, "does_paging", "true")); 225 } 226 } 227 tq_service.appendChild(doc.importNode(service_metadata_list, true)); 228 } 210 229 return tq_service; 211 230 -
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/FedoraSearch.java.tmp
r28969 r29558 91 91 tq_service.setAttribute(GSXML.NAME_ATT, QUERY_SERVICE); 92 92 this.short_service_info.appendChild(tq_service); 93 //does_paging = true;94 93 95 94 // add some format info to service map if there is any -
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/GS2LuceneSearch.java
r29544 r29558 41 41 public class GS2LuceneSearch extends SharedSoleneGS2FieldSearch 42 42 { 43 43 44 protected static final String SORT_ORDER_PARAM = "reverseSort"; 44 45 protected static final String SORT_ORDER_REVERSE = "1"; … … 51 52 public GS2LuceneSearch() 52 53 { 54 does_paging = true; 53 55 paramDefaults.put(SORT_ORDER_PARAM, SORT_ORDER_NORMAL); 54 56 this.lucene_src = new GS2LuceneQuery(); … … 98 100 99 101 } 102 100 103 /** methods to handle actually doing the query */ 101 104 … … 108 111 String physical_index_language_name = null; 109 112 String physical_sub_index_name = null; 110 int maxdocs = Integer.parseInt(paramDefaults.get(MAXDOCS_PARAM));111 113 int hits_per_page = Integer.parseInt(paramDefaults.get(HITS_PER_PAGE_PARAM)); 112 114 int start_page = Integer.parseInt(paramDefaults.get(START_PAGE_PARAM)); 113 115 String sort_field = getLuceneSort(default_sort); 114 116 String sort_order = paramDefaults.get(SORT_ORDER_PARAM); 117 115 118 // set up the query params 116 119 Set entries = params.entrySet(); … … 122 125 String value = (String) m.getValue(); 123 126 124 if (name.equals( MAXDOCS_PARAM) && !value.equals(""))125 { 126 maxdocs = Integer.parseInt(value);127 }128 else if (name.equals(HITS_PER_PAGE_PARAM))129 {130 hits_per_page = Integer.parseInt(value);127 if (name.equals(HITS_PER_PAGE_PARAM)) 128 { 129 if (value.equals("all")) { 130 hits_per_page = -1; 131 } else { 132 hits_per_page = Integer.parseInt(value); 133 } 131 134 } 132 135 else if (name.equals(START_PAGE_PARAM)) … … 177 180 // set up start and end results if necessary 178 181 int start_results = 1; 179 if (start_page != 1)182 if (start_page > 1 && hits_per_page > 0) 180 183 { 181 184 start_results = ((start_page - 1) * hits_per_page) + 1; 182 185 } 183 int end_results = hits_per_page * start_page; 186 int end_results = Integer.MAX_VALUE; 187 if (hits_per_page > 0) { 188 end_results = hits_per_page * start_page; 189 } 184 190 this.lucene_src.setStartResults(start_results); 185 191 this.lucene_src.setEndResults(end_results); -
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/GS2MGPPSearch.java
r29409 r29558 53 53 public GS2MGPPSearch() 54 54 { 55 does_chunking = true; 55 56 if (mgpp_src == null) 56 57 { … … 90 91 mgpp_src.setReturnTerms(true); 91 92 mgpp_src.setMaxNumeric(this.maxnumeric); 93 // mgpp internal default is 50, so set it here so the interface params agree 94 paramDefaults.put(MAXDOCS_PARAM, "50"); 92 95 return true; 93 96 } -
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/GS2MGSearch.java
r28966 r29558 56 56 /** constructor */ 57 57 public GS2MGSearch () { 58 does_chunking = true; 58 59 if(this.mg_src == null){ 59 60 this.mg_src = new MGSearchWrapper (); … … 70 71 return false; 71 72 } 72 73 73 this.mg_src.setMaxNumeric (this.maxnumeric); 74 // internally mg uses 50, so set this here 75 paramDefaults.put(MAXDOCS_PARAM, "50"); 74 76 return true; 75 77 } -
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/GoogleNgramMGPPSearch.java
r28181 r29558 31 31 /** 32 32 * 33 * @author <a href="mailto:[email protected]">Shaoqun Wu</a>33 * @author Shaoqun Wu 34 34 */ 35 35 … … 42 42 /** constructor */ 43 43 public GoogleNgramMGPPSearch(){ 44 super();44 this.does_paging = true; 45 45 } 46 46 … … 54 54 this.default_hits_per_page = "30"; 55 55 this.does_stem = false; 56 this.does_paging = true;57 56 return true; 58 57 } -
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/GoogleSearch.java.tmp
r28969 r29558 56 56 public GoogleSearch() 57 57 { 58 does_paging = true; 59 does_chunking = false; 58 60 QUERY_SERVICE = "TextQuery"; 59 61 } … … 78 80 } 79 81 80 does_paging = true;81 does_chunking = false;82 82 83 83 // are we behind a proxy?? -
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/IViaSearch.java
r28966 r29558 41 41 public IViaSearch() 42 42 { 43 does_paging = true; 44 does_multi_index_search = true; 43 45 } 44 46 … … 60 62 return false; 61 63 } 62 does_paging = true;63 does_multi_index_search = true;64 64 this.default_index = ",kw,au,su,ti,de,fu,"; // all of them 65 65 index_ids = new ArrayList<String>(); -
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/SharedSoleneGS2FieldSearch.java
r29543 r29558 49 49 public SharedSoleneGS2FieldSearch() 50 50 { 51 super(); 51 does_paging = true; 52 does_chunking = false; // actually it can but we don't want to do a max docs, as we are already paging results 53 52 54 // Lucene/Solr uses double operators, not single 53 55 //AND_OPERATOR = "&&"; … … 57 59 NOT_OPERATOR = "NOT"; 58 60 59 does_paging = true;60 does_chunking = true;61 61 } 62 62
Note:
See TracChangeset
for help on using the changeset viewer.