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();
+		}
+	}
+}