org.apache.lucene.document

## Class BigIntegerPoint

- java.lang.Object
- - org.apache.lucene.document.Field
  - - org.apache.lucene.document.BigIntegerPoint

All Implemented Interfaces:
  IndexableField

    public class BigIntegerPoint
    extends Field

An indexed 128-bit `BigInteger` field.

Finding all documents within an N-dimensional shape or range at search time is efficient. Multiple values for the same field in one document is allowed.

This field defines static factory methods for creating common queries:

- `newExactQuery(String, BigInteger)` for matching an exact 1D point.
- `newSetQuery(String, BigInteger...)` for matching a set of 1D values.
- `newRangeQuery(String, BigInteger, BigInteger)` for matching a 1D range.
- `newRangeQuery(String, BigInteger[], BigInteger[])` for matching points/ranges in n-dimensional space.

See Also:
  `PointValues`

### Nested Class Summary

### Nested classes/interfaces inherited from class org.apache.lucene.document.Field

`Field.Store`

### Field Summary

Fields
`static int` `BYTES` The number of bytes per dimension: 128 bits.
`static BigInteger` `MAX_VALUE` A constant holding the maximum value a BigIntegerPoint can have, 2127-1.
`static BigInteger` `MIN_VALUE` A constant holding the minimum value a BigIntegerPoint can have, -2127.

### Fields inherited from class org.apache.lucene.document.Field

`fieldsData, name, tokenStream, type`

### Constructor Summary

Constructors
Constructor and Description
`BigIntegerPoint(String name, BigInteger... point)` Creates a new BigIntegerPoint, indexing the provided N-dimensional big integer point.

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`static BigInteger` `decodeDimension(byte[] value, int offset)` Decode single BigInteger dimension
`static void` `encodeDimension(BigInteger value, byte[] dest, int offset)` Encode single BigInteger dimension
`static Query` `newExactQuery(String field, BigInteger value)` Create a query for matching an exact big integer value.
`static Query` `newRangeQuery(String field, BigInteger[] lowerValue, BigInteger[] upperValue)` Create a range query for n-dimensional big integer values.
`static Query` `newRangeQuery(String field, BigInteger lowerValue, BigInteger upperValue)` Create a range query for big integer values.
`static Query` `newSetQuery(String field, BigInteger... values)` Create a query matching any of the specified 1D values.
`Number` `numericValue()`
`void` `setBigIntegerValues(BigInteger... point)` Change the values of this field
`void` `setBytesValue(BytesRef bytes)`
`String` `toString()`

### Methods inherited from class org.apache.lucene.document.Field

`binaryValue, fieldType, getCharSequenceValue, name, readerValue, setBytesValue, setByteValue, setDoubleValue, setFloatValue, setIntValue, setLongValue, setReaderValue, setShortValue, setStringValue, setTokenStream, stringValue, tokenStream, tokenStreamValue`

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

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

### Field Detail

#### BYTES

    public static final int BYTES

The number of bytes per dimension: 128 bits.

See Also:
  Constant Field Values

#### MIN_VALUE

    public static final BigInteger MIN_VALUE

A constant holding the minimum value a BigIntegerPoint can have, -2127.

#### MAX_VALUE

    public static final BigInteger MAX_VALUE

A constant holding the maximum value a BigIntegerPoint can have, 2127-1.

### Constructor Detail

#### BigIntegerPoint

    public BigIntegerPoint(String name,
                           BigInteger... point)

Creates a new BigIntegerPoint, indexing the provided N-dimensional big integer point.

Parameters:
  `name` - field name
  `point` - BigInteger[] value
Throws:
  `IllegalArgumentException` - if the field name or value is null.

### Method Detail

#### setBigIntegerValues

    public void setBigIntegerValues(BigInteger... point)

Change the values of this field

#### setBytesValue

    public void setBytesValue(BytesRef bytes)

Overrides:
  `setBytesValue` in class `Field`

#### numericValue

    public Number numericValue()

Specified by:
  `numericValue` in interface `IndexableField`
Overrides:
  `numericValue` in class `Field`

#### toString

    public String toString()

Overrides:
  `toString` in class `Field`

#### encodeDimension

    public static void encodeDimension(BigInteger value,
                                       byte[] dest,
                                       int offset)

Encode single BigInteger dimension

#### decodeDimension

    public static BigInteger decodeDimension(byte[] value,
                                             int offset)

Decode single BigInteger dimension

#### newExactQuery

    public static Query newExactQuery(String field,
                                      BigInteger value)

Create a query for matching an exact big integer value.

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

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

#### newRangeQuery

    public static Query newRangeQuery(String field,
                                      BigInteger lowerValue,
                                      BigInteger upperValue)

Create a range query for big integer values.

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

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

Ranges are inclusive. For exclusive ranges, pass `lowerValue.add(BigInteger.ONE)` or `upperValue.subtract(BigInteger.ONE)`

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, `lowerValue` is null, or `upperValue` is null.

#### newRangeQuery

    public static Query newRangeQuery(String field,
                                      BigInteger[] lowerValue,
                                      BigInteger[] upperValue)

Create a range query for n-dimensional big integer values.

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

Ranges are inclusive. For exclusive ranges, pass `lowerValue[i].add(BigInteger.ONE)` or `upperValue[i].subtract(BigInteger.ONE)`

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,
                                    BigInteger... 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