SloppyPhraseMatcher

class SloppyPhraseMatcher(postings: Array<PhraseQuery.PostingsAndFreq>, slop: Int, scoreMode: ScoreMode, scorer: Similarity.SimScorer, matchCost: Float, captureLeadMatch: Boolean) : 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).

Constructors

Link copied to clipboard
constructor(postings: Array<PhraseQuery.PostingsAndFreq>, slop: Int, scoreMode: ScoreMode, scorer: Similarity.SimScorer, matchCost: Float, captureLeadMatch: Boolean)

Properties

Link copied to clipboard

An estimate of the average cost of finding all matches on a document

Functions

Link copied to clipboard
open override fun approximation(): DocIdSetIterator

Approximation that only matches documents that have all terms.

Link copied to clipboard
open override fun endOffset(): Int

The end offset of the current match

Link copied to clipboard
open override fun endPosition(): Int

The end position of the current match

Link copied to clipboard
open override fun impactsApproximation(): ImpactsDISI

Approximation that is aware of impacts.

Link copied to clipboard
open override fun maxFreq(): Float

An upper bound on the number of possible matches on this document

Link copied to clipboard
open override fun nextMatch(): Boolean

Find the next match on the current document, returning false if there are none.

Link copied to clipboard
open override fun reset()

Called after .approximation has been advanced

Link copied to clipboard
open override fun sloppyWeight(): Float

The slop-adjusted weight of the current match

Link copied to clipboard
open override fun startOffset(): Int

The start offset of the current match

Link copied to clipboard
open override fun startPosition(): Int

The start position of the current match