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