Package org.apache.lucene.search

# Class SloppyPhraseMatcher

java.lang.Object
org.apache.lucene.search.PhraseMatcher
org.apache.lucene.search.SloppyPhraseMatcher

public final class SloppyPhraseMatcher extends PhraseMatcher
Find all slop-valid position-combinations (matches) encountered while traversing/hopping the PhrasePositions.
The sloppy frequency contribution of a match depends on the distance:
- highest freq for distance=0 (exact match).
- freq gets lower as distance gets higher.
Example: for query "a b"~2, a document "x a b a y" can be matched twice: once for "a b" (distance=0), and once for "b a" (distance=2).
Possibly not all valid combinations are encountered, because for efficiency we always propagate the least PhrasePosition. This allows to base on PriorityQueue and move forward faster. As result, for example, document "a b c b a" would score differently for queries "a b c"~4 and "c b a"~4, although they really are equivalent. Similarly, for doc "a b c b a f g", query "c b"~2 would get same score as "g f"~2, although "c b"~2 could be matched twice. We may want to fix this in the future (currently not, for performance reasons).

NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `SloppyPhraseMatcher(PhraseQuery.PostingsAndFreq[] postings, int slop, ScoreMode scoreMode, Similarity.SimScorer scorer, float matchCost, boolean captureLeadMatch)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `endOffset()`
  `int`
  `endPosition()`
  `boolean`
  `nextMatch()`
  Find the next match on the current document, returning `false` if there are none.
  `void`
  `reset()`
  Called after `PhraseMatcher.approximation()` has been advanced
  `int`
  `startOffset()`
  `int`
  `startPosition()`

  ### Methods inherited from class org.apache.lucene.search.PhraseMatcher

  `getMatchCost`

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

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

- ## Constructor Details

  - ### SloppyPhraseMatcher

    public SloppyPhraseMatcher(PhraseQuery.PostingsAndFreq[] postings, int slop, ScoreMode scoreMode, Similarity.SimScorer scorer, float matchCost, boolean captureLeadMatch)

- ## Method Details

  - ### reset

    public void reset() throws IOException
    Description copied from class: `PhraseMatcher`
    Called after `PhraseMatcher.approximation()` has been advanced
    Specified by:
      `reset` in class `PhraseMatcher`
    Throws:
      `IOException`

  - ### nextMatch

    public boolean nextMatch() throws IOException
    Description copied from class: `PhraseMatcher`
    Find the next match on the current document, returning `false` if there are none.
    Specified by:
      `nextMatch` in class `PhraseMatcher`
    Throws:
      `IOException`

  - ### startPosition

    public int startPosition()

  - ### endPosition

    public int endPosition()

  - ### startOffset

    public int startOffset() throws IOException
    Throws:
      `IOException`

  - ### endOffset

    public int endOffset() throws IOException
    Throws:
      `IOException`