List of usage examples for org.apache.lucene.search.highlight DefaultEncoder DefaultEncoder
public DefaultEncoder()
From source file:natural.language.qa.LuceneSearch.java
License:Apache License
public List<LuceneSearchResult> search(String queryString, int maxRes) throws Exception { IndexSearcher searcher = null;/*from w w w .ja va 2 s . co m*/ List<LuceneSearchResult> results = new ArrayList<LuceneSearchResult>(); try { Properties indexConf = new Properties(); FileInputStream fis = new FileInputStream("index.properties"); indexConf.load(fis); String index = indexConf.getProperty("index"); String field = "contents"; Directory indexDir = FSDirectory.open(new File(index)); searcher = new IndexSearcher(indexDir); Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_31); QueryParser parser = new QueryParser(Version.LUCENE_31, field, analyzer); queryString = queryString.trim(); if (queryString.length() == 0) { return results; } Query query = parser.parse(queryString); System.out.println("Searching for: " + query.toString(field)); // ================================================ Formatter f = new SimpleHTMLFormatter("", ""); Encoder e = new DefaultEncoder(); QueryScorer fs = new QueryScorer(query); Fragmenter fragmenter = new SimpleSpanFragmenter(fs, 50);// new SentenceFragmenter(); Highlighter h = new Highlighter(f, e, fs); h.setTextFragmenter(fragmenter); h.setMaxDocCharsToAnalyze(Integer.MAX_VALUE); // ================================================ // Collect docs TopDocs res = searcher.search(query, maxRes); int numTotalHits = res.totalHits; ScoreDoc[] scoreDocs = res.scoreDocs; for (ScoreDoc scoreDoc : scoreDocs) { Document doc = searcher.doc(scoreDoc.doc); String path = doc.get("path"); String content = readDocument(path); String bestFragment = h.getBestFragment(analyzer, field, content); String frag = bestFragment; //System.out.println(frag); LuceneSearchResult hit = new LuceneSearchResult(scoreDoc.doc, path, frag); results.add(hit); } System.out.println(numTotalHits + " total matching documents"); } finally { if (searcher != null) { searcher.close(); } } return results; }
From source file:org.apache.solr.highlight.DefaultSolrHighlighter.java
License:Apache License
@Override public void init(PluginInfo info) { formatters.clear();/*from w ww . j a v a 2 s . c om*/ encoders.clear(); fragmenters.clear(); fragListBuilders.clear(); fragmentsBuilders.clear(); boundaryScanners.clear(); // Load the fragmenters SolrFragmenter frag = solrCore.initPlugins(info.getChildren("fragmenter"), fragmenters, SolrFragmenter.class, null); if (frag == null) frag = new GapFragmenter(); fragmenters.put("", frag); fragmenters.put(null, frag); // Load the formatters SolrFormatter fmt = solrCore.initPlugins(info.getChildren("formatter"), formatters, SolrFormatter.class, null); if (fmt == null) fmt = new HtmlFormatter(); formatters.put("", fmt); formatters.put(null, fmt); // Load the encoders SolrEncoder enc = solrCore.initPlugins(info.getChildren("encoder"), encoders, SolrEncoder.class, null); if (enc == null) enc = new DefaultEncoder(); encoders.put("", enc); encoders.put(null, enc); // Load the FragListBuilders SolrFragListBuilder fragListBuilder = solrCore.initPlugins(info.getChildren("fragListBuilder"), fragListBuilders, SolrFragListBuilder.class, null); if (fragListBuilder == null) fragListBuilder = new SimpleFragListBuilder(); fragListBuilders.put("", fragListBuilder); fragListBuilders.put(null, fragListBuilder); // Load the FragmentsBuilders SolrFragmentsBuilder fragsBuilder = solrCore.initPlugins(info.getChildren("fragmentsBuilder"), fragmentsBuilders, SolrFragmentsBuilder.class, null); if (fragsBuilder == null) fragsBuilder = new ScoreOrderFragmentsBuilder(); fragmentsBuilders.put("", fragsBuilder); fragmentsBuilders.put(null, fragsBuilder); // Load the BoundaryScanners SolrBoundaryScanner boundaryScanner = solrCore.initPlugins(info.getChildren("boundaryScanner"), boundaryScanners, SolrBoundaryScanner.class, null); if (boundaryScanner == null) boundaryScanner = new SimpleBoundaryScanner(); boundaryScanners.put("", boundaryScanner); boundaryScanners.put(null, boundaryScanner); initialized = true; }
From source file:org.apache.solr.highlight.DefaultSolrHighlighter.java
License:Apache License
@Override @Deprecated/*from ww w. j a va 2 s. com*/ public void initalize(SolrConfig config) { if (initialized) return; SolrFragmenter frag = new GapFragmenter(); fragmenters.put("", frag); fragmenters.put(null, frag); SolrFormatter fmt = new HtmlFormatter(); formatters.put("", fmt); formatters.put(null, fmt); SolrEncoder enc = new DefaultEncoder(); encoders.put("", enc); encoders.put(null, enc); SolrFragListBuilder fragListBuilder = new SimpleFragListBuilder(); fragListBuilders.put("", fragListBuilder); fragListBuilders.put(null, fragListBuilder); SolrFragmentsBuilder fragsBuilder = new ScoreOrderFragmentsBuilder(); fragmentsBuilders.put("", fragsBuilder); fragmentsBuilders.put(null, fragsBuilder); SolrBoundaryScanner boundaryScanner = new SimpleBoundaryScanner(); boundaryScanners.put("", boundaryScanner); boundaryScanners.put(null, boundaryScanner); }
From source file:org.carrot2.source.lucene.SimpleFieldMapper.java
License:Open Source License
private void resetHighlighter() { if (formatter != null) { this.highlighter = new Highlighter(formatter, new QueryScorer(query)); this.highlighter.setEncoder(new DefaultEncoder()); } else {//ww w . j ava 2 s. co m this.highlighter = null; } }
From source file:org.compass.core.lucene.engine.highlighter.DefaultLuceneHighlighterFactory.java
License:Apache License
protected Encoder createEncoder(String highlighterName, CompassSettings settings) throws SearchEngineException { Encoder encoder;/*from w w w . j a va 2 s . c o m*/ Object obj = settings.getSetting(LuceneEnvironment.Highlighter.Encoder.TYPE); if (obj instanceof Encoder) { encoder = (Encoder) obj; if (log.isDebugEnabled()) { log.debug("Highlighter [" + highlighterName + "] uses encoder instance [" + encoder + "]"); } } else { String encoderSetting = settings.getSetting(LuceneEnvironment.Highlighter.Encoder.TYPE, LuceneEnvironment.Highlighter.Encoder.DEFAULT); if (log.isDebugEnabled()) { log.debug("Highlighter [" + highlighterName + "] uses encoder [" + encoderSetting + "]"); } if (LuceneEnvironment.Highlighter.Encoder.DEFAULT.equals(encoderSetting)) { encoder = new DefaultEncoder(); } else if (LuceneEnvironment.Highlighter.Encoder.HTML.equals(encoderSetting)) { encoder = new SimpleHTMLEncoder(); } else { try { // the formatter is the fully qualified class name encoder = (Encoder) ClassUtils.forName(encoderSetting, settings.getClassLoader()).newInstance(); } catch (Exception e) { throw new SearchEngineException( "Cannot instantiate Lucene encoder [" + encoderSetting + "] for highlighter [" + highlighterName + "]. Please verify the highlighter encoder setting at [" + LuceneEnvironment.Highlighter.Encoder.TYPE + "]", e); } } } if (encoder instanceof CompassConfigurable) { ((CompassConfigurable) encoder).configure(settings); } return encoder; }