public abstract class PointValues extends Object
Points represent numeric values and are indexed differently than ordinary text. Instead of an inverted index, points are indexed with datastructures such as KD-trees. These structures are optimized for operations such as range, distance, nearest-neighbor, and point-in-polygon queries.
Java type | Lucene class |
---|---|
int | IntPoint |
long | LongPoint |
float | FloatPoint |
double | DoublePoint |
byte[] | BinaryPoint |
BigInteger | BigIntegerPoint* |
InetAddress | InetAddressPoint* |
Basic Lucene point types behave like their java peers: for example IntPoint
represents a signed 32-bit
Integer
, supporting values ranging from Integer.MIN_VALUE
to Integer.MAX_VALUE
, ordered
consistent with Integer.compareTo(Integer)
. In addition to indexing support, point classes also contain
static methods (such as IntPoint.newRangeQuery(String, int, int)
) for creating common queries. For example:
// add year 1970 to document document.add(new IntPoint("year", 1970)); // index document writer.addDocument(document); ... // issue range query of 1960-1980 Query query = IntPoint.newRangeQuery("year", 1960, 1980); TopDocs docs = searcher.search(query, ...);
DoublePoint
support points in multi-dimensional space too, Lucene has
specialized classes for location data. These classes are optimized for location data: they are more space-efficient and
support special operations such as distance and polygon queries. There are currently two implementations:
LatLonPoint
: indexes (latitude,longitude)
as (x,y)
in two-dimensional space.
(latitude,longitude)
as (x,y,z)
in three-dimensional space.
BinaryPoint
for more flexibility, or via custom Field
subclasses.Modifier and Type | Class and Description |
---|---|
static interface |
PointValues.IntersectVisitor
We recurse the BKD tree, using a provided instance of this to guide the recursion.
|
static class |
PointValues.Relation
Used by
intersect(org.apache.lucene.index.PointValues.IntersectVisitor) to check how each recursive cell corresponds to the query. |
Modifier and Type | Field and Description |
---|---|
static int |
MAX_DIMENSIONS
Maximum number of dimensions
|
static int |
MAX_INDEX_DIMENSIONS
Maximum number of index dimensions
|
static int |
MAX_NUM_BYTES
Maximum number of bytes for each dimension
|
Modifier | Constructor and Description |
---|---|
protected |
PointValues()
Default constructor
|
Modifier and Type | Method and Description |
---|---|
long |
estimateDocCount(PointValues.IntersectVisitor visitor)
Estimate the number of documents that would be matched by
intersect(org.apache.lucene.index.PointValues.IntersectVisitor)
with the given PointValues.IntersectVisitor . |
abstract long |
estimatePointCount(PointValues.IntersectVisitor visitor)
Estimate the number of points that would be visited by
intersect(org.apache.lucene.index.PointValues.IntersectVisitor)
with the given PointValues.IntersectVisitor . |
abstract int |
getBytesPerDimension()
Returns the number of bytes per dimension
|
abstract int |
getDocCount()
Returns the total number of documents that have indexed at least one point.
|
static int |
getDocCount(IndexReader reader,
String field)
Return the cumulated number of docs that have points across all leaves
of the given
IndexReader . |
abstract byte[] |
getMaxPackedValue()
Returns maximum value for each dimension, packed, or null if
size(org.apache.lucene.index.IndexReader, java.lang.String) is 0 |
static byte[] |
getMaxPackedValue(IndexReader reader,
String field)
Return the maximum packed values across all leaves of the given
IndexReader . |
abstract byte[] |
getMinPackedValue()
Returns minimum value for each dimension, packed, or null if
size(org.apache.lucene.index.IndexReader, java.lang.String) is 0 |
static byte[] |
getMinPackedValue(IndexReader reader,
String field)
Return the minimum packed values across all leaves of the given
IndexReader . |
abstract int |
getNumDimensions()
Returns how many dimensions are represented in the values
|
abstract int |
getNumIndexDimensions()
Returns how many dimensions are used for the index
|
abstract void |
intersect(PointValues.IntersectVisitor visitor)
Finds all documents and points matching the provided visitor.
|
abstract long |
size()
Returns the total number of indexed points across all documents.
|
static long |
size(IndexReader reader,
String field)
Return the cumulated number of points across all leaves of the given
IndexReader . |
public static final int MAX_NUM_BYTES
public static final int MAX_DIMENSIONS
public static final int MAX_INDEX_DIMENSIONS
public static long size(IndexReader reader, String field) throws IOException
IndexReader
. Leaves that do not have points for the given field
are ignored.IOException
size()
public static int getDocCount(IndexReader reader, String field) throws IOException
IndexReader
. Leaves that do not have points for the
given field are ignored.IOException
getDocCount()
public static byte[] getMinPackedValue(IndexReader reader, String field) throws IOException
IndexReader
. Leaves that do not have points for the given field
are ignored.IOException
getMinPackedValue()
public static byte[] getMaxPackedValue(IndexReader reader, String field) throws IOException
IndexReader
. Leaves that do not have points for the given field
are ignored.IOException
getMaxPackedValue()
public abstract void intersect(PointValues.IntersectVisitor visitor) throws IOException
IOException
public abstract long estimatePointCount(PointValues.IntersectVisitor visitor)
intersect(org.apache.lucene.index.PointValues.IntersectVisitor)
with the given PointValues.IntersectVisitor
. This should run many times faster
than intersect(IntersectVisitor)
.public long estimateDocCount(PointValues.IntersectVisitor visitor)
intersect(org.apache.lucene.index.PointValues.IntersectVisitor)
with the given PointValues.IntersectVisitor
. This should run many times faster
than intersect(IntersectVisitor)
.DocIdSetIterator.cost()
public abstract byte[] getMinPackedValue() throws IOException
size(org.apache.lucene.index.IndexReader, java.lang.String)
is 0
IOException
public abstract byte[] getMaxPackedValue() throws IOException
size(org.apache.lucene.index.IndexReader, java.lang.String)
is 0
IOException
public abstract int getNumDimensions() throws IOException
IOException
public abstract int getNumIndexDimensions() throws IOException
IOException
public abstract int getBytesPerDimension() throws IOException
IOException
public abstract long size()
public abstract int getDocCount()
Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.