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.index.IndexReader; import org.apache.lucene.search.Query; import org.apache.lucene.queryParser.QueryParser; //import org.apache.lucene.search.Hits; import org.apache.lucene.search.TermQuery; import org.apache.lucene.search.TopDocs; import org.apache.lucene.index.Term; import org.apache.lucene.store.FSDirectory; import org.apache.lucene.store.Directory; import org.greenstone.LuceneWrapper3.GS2Analyzer; import java.io.File; import org.apache.log4j.*; /** * */ public class LuceneSearch extends AbstractTextSearch { static Logger logger = Logger.getLogger(org.greenstone.gsdl3.service.LuceneSearch.class.getName()); protected static final String INDEX_ELEM = "index"; protected ArrayList index_ids; public LuceneSearch() { index_ids = new ArrayList(); } public boolean configure(Element info, Element extra_info) { if (!super.configure(info, extra_info)){ return false; } default_index = "idx"; // cache index info read from config file 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