package org.greenstone.gsdl3.service; // Greenstone classes import org.greenstone.gsdl3.util.*; // XML classes import org.w3c.dom.Element; import org.w3c.dom.Document; import org.w3c.dom.NodeList; import java.util.HashMap; import java.util.ArrayList; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.*; //Document; import org.apache.lucene.search.Searcher; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.Query; import org.apache.lucene.search.Hits; import org.apache.lucene.queryParser.QueryParser; import org.apache.lucene.search.TermQuery; import org.apache.lucene.index.Term; import java.io.File; import org.apache.log4j.*; /** * */ public class LuceneSearch extends AbstractSearch { static Logger logger = Logger.getLogger(org.greenstone.gsdl3.service.LuceneSearch.class.getName()); protected static final String INDEX_ELEM = "index"; public boolean configure(Element info, Element extra_info) { if (!super.configure(info, extra_info)){ return false; } default_index = "idx"; return true; } protected void getIndexData(ArrayList index_ids, ArrayList index_names, String lang) { // the index info - read from config file - cache it?? Element index_list = (Element)GSXML.getChildByTagName(this.config_info, INDEX_ELEM+GSXML.LIST_MODIFIER); if (index_list != null) { NodeList indexes = index_list.getElementsByTagName(INDEX_ELEM); int len = indexes.getLength(); // now add even if there is only one for (int i=0; i