Example usage for org.apache.lucene.search.highlight DefaultEncoder DefaultEncoder

List of usage examples for org.apache.lucene.search.highlight DefaultEncoder DefaultEncoder

Introduction

In this page you can find the example usage for org.apache.lucene.search.highlight DefaultEncoder DefaultEncoder.

Prototype

public DefaultEncoder() 

Source Link

Usage

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