You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@lucene.apache.org by AarKay <ks...@gmail.com> on 2013/05/09 16:30:27 UTC

FastVectorHighlighter returns null fragments - Lucene 4.0

I have an index built using Lucene4 with below config
storeTermVectors=true
storeTermVectorPositions=true
storeTermVectorOffsets=true
IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS

I am trying to use FastVectorHighlighter for retrieving the snippets from
hit docs but getBestFragment method is returning nulls even when there are
hit docs.

Can someone please tell me what am i doing wrong?

Here is the code snippet on how I am using FastVectorHighlighter

    private FastVectorHighlighter getHighlighter() {
        FragListBuilder fragListBuilder = new SimpleFragListBuilder(200);
        FragmentsBuilder fragmentBuilder = new
SimpleFragmentsBuilder(PRE_TAGS, POST_TAGS);
        return new FastVectorHighlighter(true, true, fragListBuilder,
fragmentBuilder);
    }

    public void testHighlight(String term) throws Exception {
    ClassicAnalyzer analyzer = new ClassicAnalyzer(Version.LUCENE_40);
        Query query = new QueryParser(Version.LUCENE_40, "contents:,
analyzer).parse(term);
        FastVectorHighlighter highlighter = getHighlighter();
        FieldQuery fieldQuery = highlighter.getFieldQuery(query);

        TopDocs topDocs = indexSearcher.search(query, 10);
        List<String> fragments = new ArrayList<String>();
        for (ScoreDoc scoreDoc : topDocs.scoreDocs) {
            fragments.add(highlighter.getBestFragment(fieldQuery,
indexSearcher.getIndexReader(), scoreDoc.doc, "contents", 1000));
        }

        System.out.println( fragments.size() + " " + fragments.toString());
    }


Thanks
AarKay