Class LongPoint

    • Constructor Detail

      • LongPoint

        public LongPoint​(String name,
                         long... point)
        Creates a new LongPoint, indexing the provided N-dimensional long point.
        Parameters:
        name - field name
        point - long[] value
        Throws:
        IllegalArgumentException - if the field name or value is null.
    • Method Detail

      • setLongValues

        public void setLongValues​(long... point)
        Change the values of this field
      • setBytesValue

        public void setBytesValue​(BytesRef bytes)
        Description copied from class: Field
        Expert: change the value of this field. See Field.setStringValue(String).

        NOTE: the provided BytesRef is not copied so be sure not to change it until you're done with this field.

        Overrides:
        setBytesValue in class Field
      • pack

        public static BytesRef pack​(long... point)
        Pack a long point into a BytesRef
        Parameters:
        point - long[] value
        Throws:
        IllegalArgumentException - is the value is null or of zero length
      • unpack

        public static void unpack​(BytesRef bytesRef,
                                  int start,
                                  long[] buf)
        Unpack a BytesRef into a long point. This method can be used to unpack values that were packed with pack(long...).
        Parameters:
        bytesRef - BytesRef Value
        start - the start offset to unpack the values from
        buf - the buffer to store the values in
        Throws:
        IllegalArgumentException - if bytesRef or buf are null
      • toString

        public String toString()
        Description copied from class: Field
        Prints a Field for human consumption.
        Overrides:
        toString in class Field
      • encodeDimension

        public static void encodeDimension​(long value,
                                           byte[] dest,
                                           int offset)
        Encode single long dimension
      • decodeDimension

        public static long decodeDimension​(byte[] value,
                                           int offset)
        Decode single long dimension
      • newExactQuery

        public static Query newExactQuery​(String field,
                                          long value)
        Create a query for matching an exact long value.

        This is for simple one-dimension points, for multidimensional points use newRangeQuery(String, long[], long[]) instead.

        Parameters:
        field - field name. must not be null.
        value - exact value
        Returns:
        a query matching documents with this exact value
        Throws:
        IllegalArgumentException - if field is null.
      • newRangeQuery

        public static Query newRangeQuery​(String field,
                                          long lowerValue,
                                          long upperValue)
        Create a range query for long values.

        This is for simple one-dimension ranges, for multidimensional ranges use newRangeQuery(String, long[], long[]) instead.

        You can have half-open ranges (which are in fact </≤ or >/≥ queries) by setting lowerValue = Long.MIN_VALUE or upperValue = Long.MAX_VALUE.

        Ranges are inclusive. For exclusive ranges, pass Math.addExact(lowerValue, 1) or Math.addExact(upperValue, -1).

        Parameters:
        field - field name. must not be null.
        lowerValue - lower portion of the range (inclusive).
        upperValue - upper portion of the range (inclusive).
        Returns:
        a query matching documents within this range.
        Throws:
        IllegalArgumentException - if field is null.
      • newRangeQuery

        public static Query newRangeQuery​(String field,
                                          long[] lowerValue,
                                          long[] upperValue)
        Create a range query for n-dimensional long values.

        You can have half-open ranges (which are in fact </≤ or >/≥ queries) by setting lowerValue[i] = Long.MIN_VALUE or upperValue[i] = Long.MAX_VALUE.

        Ranges are inclusive. For exclusive ranges, pass Math.addExact(lowerValue[i], 1) or Math.addExact(upperValue[i], -1).

        Parameters:
        field - field name. must not be null.
        lowerValue - lower portion of the range (inclusive). must not be null.
        upperValue - upper portion of the range (inclusive). must not be null.
        Returns:
        a query matching documents within this range.
        Throws:
        IllegalArgumentException - if field is null, if lowerValue is null, if upperValue is null, or if lowerValue.length != upperValue.length
      • newSetQuery

        public static Query newSetQuery​(String field,
                                        long... values)
        Create a query matching any of the specified 1D values. This is the points equivalent of TermsQuery.
        Parameters:
        field - field name. must not be null.
        values - all values to match
      • newSetQuery

        public static Query newSetQuery​(String field,
                                        Collection<Long> values)
        Create a query matching any of the specified 1D values. This is the points equivalent of TermsQuery.
        Parameters:
        field - field name. must not be null.
        values - all values to match
      • newDistanceFeatureQuery

        public static Query newDistanceFeatureQuery​(String field,
                                                    float weight,
                                                    long origin,
                                                    long pivotDistance)
        Given a field that indexes the same long values into a LongPoint and doc values (either NumericDocValuesField or SortedNumericDocValuesField), this returns a query that scores documents based on their distance to origin: score = weight * pivotDistance / (pivotDistance + distance), ie. score is in the [0, weight] range, is equal to weight when the document's value is equal to origin and is equal to weight/2 when the document's value is distant of pivotDistance from origin. In case of multi-valued fields, only the closest point to origin will be considered. This query is typically useful to boost results based on recency by adding this query to a BooleanClause.Occur.SHOULD clause of a BooleanQuery.