org.apache.jackrabbit.core.query.lucene
Class DefaultHighlighter

java.lang.Object
  extended by org.apache.jackrabbit.core.query.lucene.DefaultHighlighter
Direct Known Subclasses:
WeightedHighlighter

public class DefaultHighlighter
extends Object

This is an adapted version of the FulltextHighlighter posted in issue: LUCENE-644.

Important: for this highlighter to function properly, field must be stored with token offsets.
Use Field constructor Field(String, String, Field.Store, Field.Index, Field.TermVector) where the last argument is either Field.TermVector#WITH_POSITIONS_OFFSETS or Field.TermVector.WITH_OFFSETS

See Also:
TermPositionVector, TermFreqVector

Field Summary
static int DEFAULT_MAXFRAGMENTS
          A default value of 3
static int DEFAULT_SURROUND
          A default value of 75
static String END_EXCERPT
           
static String END_FRAGMENT_SEPARATOR
           
static String END_HIGHLIGHT
           
static String START_EXCERPT
           
static String START_FRAGMENT_SEPARATOR
           
static String START_HIGHLIGHT
           
 
Constructor Summary
protected DefaultHighlighter()
           
 
Method Summary
protected  String createDefaultExcerpt(String text, String excerptStart, String excerptEnd, String fragmentStart, String fragmentEnd, int maxLength)
          Creates a default excerpt with the given text.
protected  String doHighlight(org.apache.lucene.index.TermPositionVector tvec, Set<org.apache.lucene.index.Term> queryTerms, String text, String excerptStart, String excerptEnd, String fragmentStart, String fragmentEnd, String hlStart, String hlEnd, int maxFragments, int surround)
           
static String highlight(org.apache.lucene.index.TermPositionVector tvec, Set<org.apache.lucene.index.Term> queryTerms, String text, int maxFragments, int surround)
           
static String highlight(org.apache.lucene.index.TermPositionVector tvec, Set<org.apache.lucene.index.Term> queryTerms, String text, String excerptStart, String excerptEnd, String fragmentStart, String fragmentEnd, String hlStart, String hlEnd, int maxFragments, int surround)
           
protected  String mergeFragments(org.apache.lucene.index.TermVectorOffsetInfo[] offsets, String text, String excerptStart, String excerptEnd, String fragmentStart, String fragmentEnd, String hlStart, String hlEnd, int maxFragments, int surround)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_MAXFRAGMENTS

public static final int DEFAULT_MAXFRAGMENTS
A default value of 3

See Also:
Constant Field Values

DEFAULT_SURROUND

public static final int DEFAULT_SURROUND
A default value of 75

See Also:
Constant Field Values

START_EXCERPT

public static final String START_EXCERPT
See Also:
Constant Field Values

END_EXCERPT

public static final String END_EXCERPT
See Also:
Constant Field Values

START_FRAGMENT_SEPARATOR

public static final String START_FRAGMENT_SEPARATOR
See Also:
Constant Field Values

END_FRAGMENT_SEPARATOR

public static final String END_FRAGMENT_SEPARATOR
See Also:
Constant Field Values

START_HIGHLIGHT

public static final String START_HIGHLIGHT
See Also:
Constant Field Values

END_HIGHLIGHT

public static final String END_HIGHLIGHT
See Also:
Constant Field Values
Constructor Detail

DefaultHighlighter

protected DefaultHighlighter()
Method Detail

highlight

public static String highlight(org.apache.lucene.index.TermPositionVector tvec,
                               Set<org.apache.lucene.index.Term> queryTerms,
                               String text,
                               String excerptStart,
                               String excerptEnd,
                               String fragmentStart,
                               String fragmentEnd,
                               String hlStart,
                               String hlEnd,
                               int maxFragments,
                               int surround)
                        throws IOException
Parameters:
tvec - the term position vector for this hit
queryTerms - the query terms.
text - the original text that was used to create the tokens.
excerptStart - this string is prepended to the excerpt
excerptEnd - this string is appended to the excerpt
fragmentStart - this string is prepended to every fragment
fragmentEnd - this string is appended to the end of every fragement.
hlStart - the string used to prepend a highlighted token, for example "<b>"
hlEnd - the string used to append a highlighted token, for example "</b>"
maxFragments - the maximum number of fragments
surround - the maximum number of chars surrounding a highlighted token
Returns:
a String with text fragments where tokens from the query are highlighted
Throws:
IOException

highlight

public static String highlight(org.apache.lucene.index.TermPositionVector tvec,
                               Set<org.apache.lucene.index.Term> queryTerms,
                               String text,
                               int maxFragments,
                               int surround)
                        throws IOException
Parameters:
tvec - the term position vector for this hit
queryTerms - the query terms.
text - the original text that was used to create the tokens.
maxFragments - the maximum number of fragments
surround - the maximum number of chars surrounding a highlighted token
Returns:
a String with text fragments where tokens from the query are highlighted
Throws:
IOException

doHighlight

protected String doHighlight(org.apache.lucene.index.TermPositionVector tvec,
                             Set<org.apache.lucene.index.Term> queryTerms,
                             String text,
                             String excerptStart,
                             String excerptEnd,
                             String fragmentStart,
                             String fragmentEnd,
                             String hlStart,
                             String hlEnd,
                             int maxFragments,
                             int surround)
                      throws IOException
Throws:
IOException
See Also:
highlight(TermPositionVector, Set, String, String, String, String, String, String, String, int, int)

mergeFragments

protected String mergeFragments(org.apache.lucene.index.TermVectorOffsetInfo[] offsets,
                                String text,
                                String excerptStart,
                                String excerptEnd,
                                String fragmentStart,
                                String fragmentEnd,
                                String hlStart,
                                String hlEnd,
                                int maxFragments,
                                int surround)
                         throws IOException
Throws:
IOException

createDefaultExcerpt

protected String createDefaultExcerpt(String text,
                                      String excerptStart,
                                      String excerptEnd,
                                      String fragmentStart,
                                      String fragmentEnd,
                                      int maxLength)
                               throws IOException
Creates a default excerpt with the given text.

Parameters:
text - the text.
excerptStart - the excerpt start.
excerptEnd - the excerpt end.
fragmentStart - the fragement start.
fragmentEnd - the fragment end.
maxLength - the maximum length of the fragment.
Returns:
a default excerpt.
Throws:
IOException - if an error occurs while reading from the text.


Copyright © 2004-2010 The Apache Software Foundation. All Rights Reserved.