Changeset 9272


Ignore:
Timestamp:
2005-03-03T17:18:29+13:00 (19 years ago)
Author:
kjdon
Message:

made this inherit from AbstractSearch

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gsdl3/src/java/org/greenstone/gsdl3/service/LuceneSearch.java

    r7993 r9272  
    1111
    1212import java.util.HashMap;
     13import java.util.ArrayList;
    1314
    1415import org.apache.lucene.analysis.Analyzer;
     
    3132
    3233public class LuceneSearch
    33     extends ServiceRack {
     34    extends AbstractSearch {
    3435
    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";
    3837   
    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");
    5556    }
    56        
    57     return true;
     57
    5858    }
    5959
    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    
    8260    /** Process a text query - implemented by concrete subclasses */
    8361    protected Element processTextQuery(Element request) {
     
    11088    }
    11189
     90    // Get the index
     91    String index = (String) params.get(INDEX_PARAM);
    11292        try {
    11393        String index_dir = GSFile.collectionIndexDir(this.site_home, this.cluster_name);
    114         index_dir += File.separator+"idx";
     94        index_dir += File.separator+index;
    11595        Searcher searcher = new IndexSearcher(index_dir);
    11696        Analyzer analyzer = new StandardAnalyzer();
Note: See TracChangeset for help on using the changeset viewer.