org.apache.lucene.search.uhighlight

## Class PhraseHelper

- java.lang.Object
- - org.apache.lucene.search.uhighlight.PhraseHelper

-     public class PhraseHelper
      extends Object

  Helps the `FieldOffsetStrategy` with strict position highlighting (e.g. highlight phrases correctly). This is a stateful class holding information about the query, but it can (and is) re-used across highlighting documents. Despite this state; it's immutable after construction. The approach taken in this class is very similar to the standard Highlighter's `WeightedSpanTermExtractor` which is in fact re-used here. However, we ought to completely rewrite it to use the SpanCollector interface to collect offsets directly. We'll get better phrase accuracy.
  NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static PhraseHelper` | `NONE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PhraseHelper(Query query, String field, Predicate<String> fieldMatcher, Function<SpanQuery,Boolean> rewriteQueryPred, Function<Query,Collection<Query>> preExtractRewriteFunction, boolean ignoreQueriesNeedingRewrite)` Constructor.

  - ### Method Summary

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### NONE

          public static final PhraseHelper NONE

  - ### Constructor Detail

    - #### PhraseHelper

          public PhraseHelper(Query query,
                              String field,
                              Predicate<String> fieldMatcher,
                              Function<SpanQuery,Boolean> rewriteQueryPred,
                              Function<Query,Collection<Query>> preExtractRewriteFunction,
                              boolean ignoreQueriesNeedingRewrite)

      Constructor. `rewriteQueryPred` is an extension hook to override the default choice of `WeightedSpanTermExtractor.mustRewriteQuery(SpanQuery)`. By default unknown query types are rewritten, so use this to return `Boolean.FALSE` if you know the query doesn't need to be rewritten. Similarly, `preExtractRewriteFunction` is also an extension hook for extract to allow different queries to be set before the `WeightedSpanTermExtractor`'s extraction is invoked. `ignoreQueriesNeedingRewrite` effectively ignores any query clause that needs to be "rewritten", which is usually limited to just a `SpanMultiTermQueryWrapper` but could be other custom ones. `fieldMatcher` The field name predicate to use for extracting the query part that must be highlighted.

Copyright © 2000-2019 Apache Software Foundation. All Rights Reserved.