Class PointInSetQuery

  • All Implemented Interfaces:
    Accountable

    public abstract class PointInSetQuery
    extends Query
    implements Accountable
    Abstract query class to find all documents whose single or multi-dimensional point values, previously indexed with e.g. IntPoint, is contained in the specified set.

    This is for subclasses and works on the underlying binary encoding: to create range queries for lucene's standard Point types, refer to factory methods on those classes, e.g. IntPoint.newSetQuery() for fields indexed with IntPoint.

    See Also:
    PointValues
    WARNING: This API is experimental and might change in incompatible ways in the next release.
    • Field Detail

      • BASE_RAM_BYTES

        protected static final long BASE_RAM_BYTES
    • Constructor Detail

      • PointInSetQuery

        protected PointInSetQuery​(String field,
                                  int numDims,
                                  int bytesPerDim,
                                  PointInSetQuery.Stream packedPoints)
        The packedPoints iterator must be in sorted order.
    • Method Detail

      • visit

        public void visit​(QueryVisitor visitor)
        Description copied from class: Query
        Recurse through the query tree, visiting any child queries
        Specified by:
        visit in class Query
        Parameters:
        visitor - a QueryVisitor to be called by each query in the tree
      • createWeight

        public final Weight createWeight​(IndexSearcher searcher,
                                         ScoreMode scoreMode,
                                         float boost)
                                  throws IOException
        Description copied from class: Query
        Expert: Constructs an appropriate Weight implementation for this query.

        Only implemented by primitive queries, which re-write to themselves.

        Overrides:
        createWeight in class Query
        scoreMode - How the produced scorers will be consumed.
        boost - The boost that is propagated by the parent queries.
        Throws:
        IOException
      • getPackedPoints

        public Collection<byte[]> getPackedPoints()
      • getField

        public String getField()
      • getNumDims

        public int getNumDims()
      • getBytesPerDim

        public int getBytesPerDim()
      • hashCode

        public final int hashCode()
        Description copied from class: Query
        Override and implement query hash code properly in a subclass. This is required so that QueryCache works properly.
        Specified by:
        hashCode in class Query
        See Also:
        Query.equals(Object)
      • equals

        public final boolean equals​(Object other)
        Description copied from class: Query
        Override and implement query instance equivalence properly in a subclass. This is required so that QueryCache works properly.

        Typically a query will be equal to another only if it's an instance of the same class and its document-filtering properties are identical that other instance. Utility methods are provided for certain repetitive code.

        Specified by:
        equals in class Query
        See Also:
        Query.sameClassAs(Object), Query.classHash()
      • toString

        public final 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.
        Specified by:
        toString in class Query
      • toString

        protected abstract String toString​(byte[] value)
        Returns a string of a single value in a human-readable format for debugging. This is used by Query.toString().

        The default implementation encodes the individual byte values.

        Parameters:
        value - single value, never null
        Returns:
        human readable value for debugging
      • ramBytesUsed

        public long ramBytesUsed()
        Description copied from interface: Accountable
        Return the memory usage of this object in bytes. Negative values are illegal.
        Specified by:
        ramBytesUsed in interface Accountable