Mercurial > hg > fulltextSearchServer
view src/de/mpiwg/dwinter/fulltextSearchServer/searchThreads/SearchInlinesThread.java @ 0:db87c1b7eb6d
initial
author | dwinter |
---|---|
date | Wed, 03 Nov 2010 12:18:46 +0100 |
parents | |
children | 83e9a828e794 |
line wrap: on
line source
package de.mpiwg.dwinter.fulltextSearchServer.searchThreads; import java.io.File; import java.io.IOException; import org.apache.log4j.Logger; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.index.CorruptIndexException; import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.queryParser.QueryParser; import org.apache.lucene.search.BooleanClause; import org.apache.lucene.search.BooleanQuery; import org.apache.lucene.search.Query; import org.apache.lucene.store.LockObtainFailedException; import org.apache.lucene.util.Version; import de.mpiwg.dwinter.fulltext.search.FulltextSearchDocsLines; public class SearchInlinesThread extends Thread { //private File docIndex; //private File lineDir; private String searchString; private String ticket; private String lang; private FulltextSearchDocsLines fulltextSearcher; private Logger logger; private String searchMetaData; public SearchInlinesThread(FulltextSearchDocsLines fulltextSearcher, String searchString, String searchMetaData,String lang, String ticket){ //this.docIndex = docIndex; //this.lineDir = lineDir; this.fulltextSearcher = fulltextSearcher; this.searchString = searchString; this.searchMetaData = searchMetaData; this.ticket=ticket; this.lang =lang; this.logger=Logger.getRootLogger(); } public void run(){ String text; FulltextSearchDocsLines fulltextSearcher; try { //fulltextSearcher = new FulltextSearchDocsLines(docIndex,lineDir); Analyzer analyzer = this.fulltextSearcher.languageSearchers.getSearcherByLanguage(lang).analyzer; QueryParser parser = new QueryParser(Version.LUCENE_30,"contents",analyzer); logger.debug(searchString); Query query= parser.parse(searchString); if ((searchMetaData!=null) && !searchMetaData.equals("")){ QueryParser parserMD = new QueryParser(Version.LUCENE_30,"dcMetaData",analyzer); Query queryMD= parserMD.parse(searchMetaData); BooleanQuery booleanQuery = new BooleanQuery(); booleanQuery.add(queryMD, BooleanClause.Occur.MUST); booleanQuery.add(query, BooleanClause.Occur.MUST); query = booleanQuery; } this.fulltextSearcher.searchInLinesToDir(query,lang,ticket); } catch (CorruptIndexException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (LockObtainFailedException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }