Mercurial > hg > fulltextSearch
view src/de/mpiwg/dwinter/fulltext/searcher/LanguageSearchers.java @ 1:5c9c31510f0c
CLOSED - # 16: Zeige nur eine konfigurierbare Anzahl von Treffern an.
https://it-dev.mpiwg-berlin.mpg.de/tracs/pythonOcropusTools/ticket/16
author | dwinter |
---|---|
date | Wed, 03 Nov 2010 12:26:29 +0100 |
parents | |
children |
line wrap: on
line source
package de.mpiwg.dwinter.fulltext.searcher; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.search.Collector; import org.apache.lucene.search.Query; import org.apache.lucene.search.TopScoreDocCollector; public class LanguageSearchers extends ArrayList<LanguageSearcher> { /** * */ private static final long serialVersionUID = 1L; public LanguageSearcher getSearcherByLanguage(String lang) { LanguageSearcher search= null; for (LanguageSearcher searcher: this) { if (searcher.lang.equals(lang)) { search = searcher; } } return search; } public Collector searchLanguage(Query query, String language) throws IOException { LanguageSearcher search = getSearcherByLanguage(language); if (search==null) return null; TopScoreDocCollector col = TopScoreDocCollector.create(LanguageSearcher.MAX_RESULTS, false); //searcher.searcher.search(query, col); search.searcher.search(query,col); return col; } public HashMap<String,Collector> searchAllLanguages(Query query) throws IOException { HashMap<String, Collector> ret = new HashMap<String,Collector>(); for (LanguageSearcher searcher : this) { //System.out.println("search:"+searcher.lang); TopScoreDocCollector col = TopScoreDocCollector.create(LanguageSearcher.MAX_RESULTS, false); searcher.searcher.search(query,col); ret.put(searcher.lang,col); } return ret; } public HashMap<String,Collector> parseAndsearchAllLanguages(String searchString) throws IOException, ParseException { HashMap<String, Collector> ret = new HashMap<String,Collector>(); for (LanguageSearcher searcher : this) { //System.out.println("XXXX:"+searcher.lang); //System.out.println("parseAndsearchAllLanguages:"+searchString); //System.out.println("parseAndsearchAllLanguages (lang):"+searcher.lang); try { ret.put(searcher.lang,searcher.parseAndSearch(searchString)); } catch (RuntimeException e) { System.err.println("Language "+searcher.lang+" not supported for search!"); } } System.out.println("parseAndSearchAllLanguages: done"); return ret; } public HashMap<String, Collector> parseAndsearchAllLanguages(String searchString, String mdString, ArrayList<String> languages) throws ParseException, IOException { HashMap<String, Collector> ret = new HashMap<String,Collector>(); for (LanguageSearcher searcher : this) { //System.out.println("XXXX:"+searcher.lang); //System.out.println("parseAndsearchAllLanguages:"+searchString); //System.out.println("parseAndsearchAllLanguages (lang):"+searcher.lang); if (languages!=null) if (!languages.contains(searcher.lang)){ continue; } try { if (mdString==null) ret.put(searcher.lang,searcher.parseAndSearch(searchString)); else ret.put(searcher.lang,searcher.parseAndSearch(searchString,mdString)); } catch (RuntimeException e) { e.printStackTrace(); System.err.println("Language "+searcher.lang+" not supported for search!"); } } System.out.println("parseAndSearchAllLanguages: done"); return ret; } public void close() throws IOException { for (LanguageSearcher searcher : this) searcher.searcher.close(); } // TODO:implement donatus tools // public HashMap<String, HashMap<String,Collector>> parseAndsearchAndAnalyseAllLanguages( // String searchString) throws ParseException, IOException { // //HashMap<String, Collector> ret = new HashMap<String,Collector>(); // // HashMap<String, HashMap<String,Collector>> ret = new HashMap<String, HashMap<String,Collector>>(); // for (LanguageSearcher searcher : this) // ret.put(searcher.lang,searcher.parseAndSearchAndAnalyse(searchString)); // // // return ret; // } }