public class XPostingsHighlighter extends Object
| Modifier and Type | Field and Description |
|---|---|
static int |
DEFAULT_MAX_LENGTH
Default maximum content size to process.
|
| Constructor and Description |
|---|
XPostingsHighlighter()
Creates a new highlighter with default parameters.
|
XPostingsHighlighter(int maxLength)
Creates a new highlighter, specifying maximum content length.
|
| Modifier and Type | Method and Description |
|---|---|
protected BreakIterator |
getBreakIterator(String
Returns the
BreakIterator to use for dividing text into passages.
|
protected int |
getContentLength(String
|
protected org |
getEmptyHighlight(String
Called to summarize a document when no hits were found.
|
protected org |
getFormatter(String
Returns the
PassageFormatter to use for formatting passages into highlighted snippets.
|
protected char |
getMultiValuedSeparator(String
Returns the logical separator between values for multi-valued fields.
|
protected int |
getOffsetForCurrentValue(String
|
protected org |
getScorer(String
Returns the
PassageScorer to use for ranking passages.
|
String |
highlight(String
Highlights the top passages from a single field.
|
String |
highlight(String
Highlights the top-N passages from a single field.
|
protected Map |
highlightField(String
|
Map |
highlightFields(String
Highlights the top-N passages from multiple fields, for the provided int[] docids.
|
Map |
highlightFields(String
Highlights the top passages from multiple fields.
|
Map |
highlightFields(String
Highlights the top-N passages from multiple fields.
|
Map |
highlightFieldsAsObjects(String
|
protected String |
loadFieldValues(org
Loads the String values for each field X docID to be highlighted.
|
public static final int DEFAULT_MAX_LENGTH
public XPostingsHighlighter()
public XPostingsHighlighter(int maxLength)
maxLength - maximum content size to process.
IllegalArgumentException - if
maxLength is negative or
Integer.MAX_VALUE
protected int getOffsetForCurrentValue(Stringfield, int docId)
protected int getContentLength(Stringfield, int docId)
protected BreakIteratorgetBreakIterator(String field)
BreakIterator to use for dividing text into passages. This returns
BreakIterator.getSentenceInstance(java.util.Locale) by default; subclasses can override to customize.
protected org.apache .lucene .search .postingshighlight .PassageFormatter getFormatter(String field)
PassageFormatter to use for formatting passages into highlighted snippets. This returns a new
PassageFormatter by default; subclasses can override to customize.
protected org.apache .lucene .search .postingshighlight .PassageScorer getScorer(String field)
PassageScorer to use for ranking passages. This returns a new
PassageScorer by default; subclasses can override to customize.
public String[] highlight(String field, org .apache .lucene .search .Query query, org .apache .lucene .search .IndexSearcher searcher, org .apache .lucene .search .TopDocs topDocs) throws IOException
field - field name to highlight. Must have a stored string value and also be indexed with offsets.
query - query to highlight.
searcher - searcher that was previously used to execute the query.
topDocs - TopDocs containing the summary result documents to highlight.
topDocs. If no highlights were found for a document, the first sentence for the field will be returned.
IOException - if an I/O error occurred during processing
IllegalArgumentException - if
field was indexed without
FieldInfo.IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS
public String[] highlight(String field, org .apache .lucene .search .Query query, org .apache .lucene .search .IndexSearcher searcher, org .apache .lucene .search .TopDocs topDocs, int maxPassages) throws IOException
field - field name to highlight. Must have a stored string value and also be indexed with offsets.
query - query to highlight.
searcher - searcher that was previously used to execute the query.
topDocs - TopDocs containing the summary result documents to highlight.
maxPassages - The maximum number of top-N ranked passages used to form the highlighted snippets.
topDocs. If no highlights were found for a document, the first
maxPassages sentences from the field will be returned.
IOException - if an I/O error occurred during processing
IllegalArgumentException - if
field was indexed without
FieldInfo.IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS
public Map<String ,String []> highlightFields(String [] fields, org .apache .lucene .search .Query query, org .apache .lucene .search .IndexSearcher searcher, org .apache .lucene .search .TopDocs topDocs) throws IOException
Conceptually, this behaves as a more efficient form of:
Map m = new HashMap();
for (String field : fields) {
m.put(field, highlight(field, query, searcher, topDocs));
}
return m;
fields - field names to highlight. Must have a stored string value and also be indexed with offsets.
query - query to highlight.
searcher - searcher that was previously used to execute the query.
topDocs - TopDocs containing the summary result documents to highlight.
topDocs. If no highlights were found for a document, the first sentence from the field will be returned.
IOException - if an I/O error occurred during processing
IllegalArgumentException - if
field was indexed without
FieldInfo.IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS
public Map<String ,String []> highlightFields(String [] fields, org .apache .lucene .search .Query query, org .apache .lucene .search .IndexSearcher searcher, org .apache .lucene .search .TopDocs topDocs, int[] maxPassages) throws IOException
Conceptually, this behaves as a more efficient form of:
Map m = new HashMap();
for (String field : fields) {
m.put(field, highlight(field, query, searcher, topDocs, maxPassages));
}
return m;
fields - field names to highlight. Must have a stored string value and also be indexed with offsets.
query - query to highlight.
searcher - searcher that was previously used to execute the query.
topDocs - TopDocs containing the summary result documents to highlight.
maxPassages - The maximum number of top-N ranked passages per-field used to form the highlighted snippets.
topDocs. If no highlights were found for a document, the first
maxPassages sentences from the field will be returned.
IOException - if an I/O error occurred during processing
IllegalArgumentException - if
field was indexed without
FieldInfo.IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS
public Map<String ,String []> highlightFields(String [] fieldsIn, org .apache .lucene .search .Query query, org .apache .lucene .search .IndexSearcher searcher, int[] docidsIn, int[] maxPassagesIn) throws IOException
fieldsIn - field names to highlight. Must have a stored string value and also be indexed with offsets.
query - query to highlight.
searcher - searcher that was previously used to execute the query.
docidsIn - containing the document IDs to highlight.
maxPassagesIn - The maximum number of top-N ranked passages per-field used to form the highlighted snippets.
topDocs. If no highlights were found for a document, the first
maxPassages from the field will be returned.
IOException - if an I/O error occurred during processing
IllegalArgumentException - if
field was indexed without
FieldInfo.IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS
public Map<String ,Object []> highlightFieldsAsObjects(String [] fieldsIn, org .apache .lucene .search .Query query, org .apache .lucene .search .IndexSearcher searcher, int[] docidsIn, int[] maxPassagesIn) throws IOException
IOException
protected String[][] loadFieldValues(org .apache .lucene .search .IndexSearcher searcher, String [] fields, int[] docids, int maxLength) throws IOException
IOException
protected char getMultiValuedSeparator(Stringfield)
U+2029 PARAGRAPH SEPARATOR (PS) if each value holds a discrete passage for highlighting.
protected Map<Integer ,Object > highlightField(String field, String [] contents, BreakIterator bi, org .apache .lucene .util .BytesRef [] terms, int[] docids, List <org .apache .lucene .index .AtomicReaderContext > leaves, int maxPassages) throws IOException
IOException
protected org.apache .lucene .search .postingshighlight .Passage [] getEmptyHighlight(String fieldName, BreakIterator bi, int maxPassages)
maxPassages sentences; subclasses can override to customize.