Mercurial > hg > fulltextSearchServer
diff 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 diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/de/mpiwg/dwinter/fulltextSearchServer/searchThreads/SearchInlinesThread.java Wed Nov 03 12:18:46 2010 +0100 @@ -0,0 +1,80 @@ +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(); + } + } +}