## org.apache.lucene.search.spans
Class SpanFirstQuery

    java.lang.Object
      org.apache.lucene.search.Query
          org.apache.lucene.search.spans.SpanQuery
              org.apache.lucene.search.spans.SpanPositionCheckQuery
                  org.apache.lucene.search.spans.SpanPositionRangeQuery
                      org.apache.lucene.search.spans.SpanFirstQuery

All Implemented Interfaces:
  Serializable, Cloneable

    public class SpanFirstQuery

extends SpanPositionRangeQuery

Matches spans near the beginning of a field.

This class is a simple extension of `SpanPositionRangeQuery` in that it assumes the start to be zero and only checks the end boundary.

See Also:
  Serialized Form

Nested Class Summary

Nested classes/interfaces inherited from class org.apache.lucene.search.spans.SpanPositionCheckQuery
`SpanPositionCheckQuery.AcceptStatus, SpanPositionCheckQuery.PositionCheckSpan`

Field Summary

Fields inherited from class org.apache.lucene.search.spans.SpanPositionRangeQuery
`end, start`

Fields inherited from class org.apache.lucene.search.spans.SpanPositionCheckQuery
`match`

Constructor Summary
`SpanFirstQuery(SpanQuery match, int end)` Construct a SpanFirstQuery matching spans in `match` whose end position is less than or equal to `end`.

Method Summary
`protected SpanPositionCheckQuery.AcceptStatus` `acceptPosition(Spans spans)` Implementing classes are required to return whether the current position is a match for the passed in "match" `SpanQuery`.
`Object` `clone()` Returns a clone of this query.
`boolean` `equals(Object o)`
`int` `hashCode()`
`String` `toString(String field)` Prints a query to a string, with `field` assumed to be the default field and omitted.

Methods inherited from class org.apache.lucene.search.spans.SpanPositionRangeQuery
`getEnd, getStart`

Methods inherited from class org.apache.lucene.search.spans.SpanPositionCheckQuery
`extractTerms, getField, getMatch, getSpans, rewrite`

Methods inherited from class org.apache.lucene.search.spans.SpanQuery
`createWeight`

Methods inherited from class org.apache.lucene.search.Query
`combine, getBoost, getSimilarity, mergeBooleanQueries, setBoost, toString, weight`

Methods inherited from class java.lang.Object
`finalize, getClass, notify, notifyAll, wait, wait, wait`

Constructor Detail

### SpanFirstQuery

    public SpanFirstQuery(SpanQuery match,
                          int end)

  Construct a SpanFirstQuery matching spans in `match` whose end position is less than or equal to `end`.

Method Detail

### acceptPosition

    protected SpanPositionCheckQuery.AcceptStatus acceptPosition(Spans spans)
                                                          throws IOException

  Description copied from class: `SpanPositionCheckQuery`
  Implementing classes are required to return whether the current position is a match for the passed in "match" `SpanQuery`. This is only called if the underlying `Spans.next()` for the match is successful

  Overrides:
    `acceptPosition` in class `SpanPositionRangeQuery`
  Parameters:
    `spans` - The `Spans` instance, positioned at the spot to check
  Returns:
    whether the match is accepted, rejected, or rejected and should move to the next doc.
  Throws:
    `IOException`
  See Also:
    `Spans.next()`

### toString

    public String toString(String field)

  Description copied from class: `Query`
  Prints a query to a string, with `field` assumed to be the default field and omitted.

  The representation used is one that is supposed to be readable by `QueryParser`. However, there are the following limitations:

  - If the query was created by the parser, the printed representation may not be exactly what was parsed. For example, characters that need to be escaped will be represented without the required backslash.
  - Some of the more complicated queries (e.g. span queries) don't have a representation that can be parsed by QueryParser.

  Overrides:
    `toString` in class `SpanPositionRangeQuery`

### clone

    public Object clone()

  Description copied from class: `Query`
  Returns a clone of this query.

  Overrides:
    `clone` in class `SpanPositionRangeQuery`

### equals

    public boolean equals(Object o)

  Overrides:
    `equals` in class `SpanPositionRangeQuery`

### hashCode

    public int hashCode()

  Overrides:
    `hashCode` in class `SpanPositionRangeQuery`