Changeset 9272
- Timestamp:
- 2005-03-03T17:18:29+13:00 (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gsdl3/src/java/org/greenstone/gsdl3/service/LuceneSearch.java
r7993 r9272 11 11 12 12 import java.util.HashMap; 13 import java.util.ArrayList; 13 14 14 15 import org.apache.lucene.analysis.Analyzer; … … 31 32 32 33 public class LuceneSearch 33 extends ServiceRack{34 extends AbstractSearch { 34 35 35 // the services on offer 36 // these strings must match what is found in the properties file 37 protected static final String TEXT_QUERY_SERVICE = "TextQuery"; 36 protected static final String INDEX_ELEM = "index"; 38 37 39 protected static final String QUERY_PARAM = "query"; 40 41 public boolean configure(Element info, Element extra_info) { 42 43 System.out.println("Configuring LuceneSearch"); 44 Element tq_service = this.doc.createElement(GSXML.SERVICE_ELEM); 45 tq_service.setAttribute(GSXML.TYPE_ATT, GSXML.SERVICE_TYPE_QUERY); 46 tq_service.setAttribute(GSXML.NAME_ATT, TEXT_QUERY_SERVICE); 47 this.short_service_info.appendChild(tq_service); 48 49 // look for format info 50 String path = GSPath.appendLink(GSXML.SEARCH_ELEM, GSXML.FORMAT_ELEM); 51 Element format = (Element) GSXML.getNodeByPath(extra_info, path); 52 if (format != null) { 53 System.out.println("found format :"+this.converter.getString(format)); 54 this.format_info_map.put(TEXT_QUERY_SERVICE, this.doc.importNode(format, true)); 38 protected void getIndexData(ArrayList index_ids, ArrayList index_names, String lang) 39 { 40 // the index info - read from config file - cache it?? 41 Element index_list = (Element)GSXML.getChildByTagName(this.config_info, INDEX_ELEM+GSXML.LIST_MODIFIER); 42 if (index_list != null) { 43 NodeList indexes = index_list.getElementsByTagName(INDEX_ELEM); 44 int len = indexes.getLength(); 45 // now add even if there is only one 46 for (int i=0; i<len; i++) { 47 Element index = (Element)indexes.item(i); 48 index_ids.add(index.getAttribute(GSXML.NAME_ATT)); 49 index_names.add(GSXML.getDisplayText(index, GSXML.DISPLAY_TEXT_NAME, lang, "en")); 50 51 } 52 } else { 53 // there is only one index, so we assume the default 54 index_ids.add("idx"); 55 index_names.add("Default index"); 55 56 } 56 57 return true; 57 58 58 } 59 59 60 protected Element getServiceDescription(String service, String lang, String subset) {61 62 if (!service.equals(TEXT_QUERY_SERVICE)) {63 return null;64 }65 Element tq_service = this.doc.createElement(GSXML.SERVICE_ELEM);66 tq_service.setAttribute(GSXML.TYPE_ATT, GSXML.SERVICE_TYPE_QUERY);67 tq_service.setAttribute(GSXML.NAME_ATT, TEXT_QUERY_SERVICE);68 if (subset==null || subset.equals(GSXML.DISPLAY_TEXT_ELEM+GSXML.LIST_MODIFIER)) {69 tq_service.appendChild(GSXML.createDisplayTextElement(this.doc, GSXML.DISPLAY_TEXT_NAME, getTextString(TEXT_QUERY_SERVICE+".name", lang)));70 tq_service.appendChild(GSXML.createDisplayTextElement(this.doc, GSXML.DISPLAY_TEXT_SUBMIT, getTextString(TEXT_QUERY_SERVICE+".submit", lang)));71 tq_service.appendChild(GSXML.createDisplayTextElement(this.doc, GSXML.DISPLAY_TEXT_DESCRIPTION, getTextString(TEXT_QUERY_SERVICE+".description", lang)));72 }73 if (subset==null || subset.equals(GSXML.PARAM_ELEM+GSXML.LIST_MODIFIER)) {74 Element param_list = this.doc.createElement(GSXML.PARAM_ELEM+GSXML.LIST_MODIFIER);75 Element param = GSXML.createParameterDescription(this.doc, QUERY_PARAM, getTextString("param."+QUERY_PARAM, lang), GSXML.PARAM_TYPE_STRING, null, null, null);76 param_list.appendChild(param);77 tq_service.appendChild(param_list);78 }79 return tq_service;80 }81 82 60 /** Process a text query - implemented by concrete subclasses */ 83 61 protected Element processTextQuery(Element request) { … … 110 88 } 111 89 90 // Get the index 91 String index = (String) params.get(INDEX_PARAM); 112 92 try { 113 93 String index_dir = GSFile.collectionIndexDir(this.site_home, this.cluster_name); 114 index_dir += File.separator+ "idx";94 index_dir += File.separator+index; 115 95 Searcher searcher = new IndexSearcher(index_dir); 116 96 Analyzer analyzer = new StandardAnalyzer();
Note:
See TracChangeset
for help on using the changeset viewer.