org.apache.ignite.cache.query

## Class IndexQuery<K,V>

- java.lang.Object
- - org.apache.ignite.cache.query.Query<javax.cache.Cache.Entry<K,V>>
  - - org.apache.ignite.cache.query.IndexQuery<K,V>

All Implemented Interfaces:
  Serializable

    public final class IndexQuery<K,V>
    extends Query<javax.cache.Cache.Entry<K,V>>

Index queries work over distributed indexes and retrieve cache entries that match the specified criteria. `QueryCursor` delivers sorted cache entries by the order defined for queried index. `IndexQuery` has to be initialized with cache value class or type. The algorithm of discovering index is as follows: 1. If `idxName` is set, then use it. 2. If `idxName` is not set, then find an index that matches criteria fields. 3. If neither `idxName`, nor `setCriteria(List)` is used, then perform index scan over PK index for specified Value type. Conjuction of items in `criteria` has to represent a valid range to traverse the index tree.

See Also:
  Serialized Form

### Field Summary

### Fields inherited from class org.apache.ignite.cache.query.Query

`DFLT_PAGE_SIZE`

### Constructor Summary

Constructors
Constructor and Description
`IndexQuery(Class<?> valCls)` Specify index with cache value class.
`IndexQuery(Class<?> valCls, @Nullable String idxName)` Specify index with cache value class and index name.
`IndexQuery(String valType)` Specify index with cache value type.
`IndexQuery(String valType, @Nullable String idxName)` Specify index with cache value type and index name.

### Method Summary

All Methods Instance Methods Concrete Methods
`List<IndexQueryCriterion>` `getCriteria()` Index query criteria.
`IgniteBiPredicate<K,V>` `getFilter()` Gets remote cache entries filter.
`String` `getIndexName()` Index name.
`@Nullable Integer` `getPartition()` Gets partition number over which this query should iterate.
`String` `getValueType()` Cache Value type.
`IndexQuery<K,V>` `setCriteria(IndexQueryCriterion... criteria)` Sets conjunction (AND) criteria for index query.
`IndexQuery<K,V>` `setCriteria(List<IndexQueryCriterion> criteria)` Sets conjunction (AND) criteria for index query.
`IndexQuery<K,V>` `setFilter(IgniteBiPredicate<K,V> filter)` Sets remote cache entries filter.
`IndexQuery<K,V>` `setPartition(@Nullable Integer part)` Sets partition number over which this query should iterate.

### Methods inherited from class org.apache.ignite.cache.query.Query

`getPageSize, isLocal, prepare, setLocal, setPageSize, toString`

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

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

### Constructor Detail

#### IndexQuery

    public IndexQuery(Class<?> valCls)

Specify index with cache value class.

Parameters:
  `valCls` - Cache value class.

#### IndexQuery

    public IndexQuery(String valType)

Specify index with cache value type.

Parameters:
  `valType` - Cache value type.

#### IndexQuery

    public IndexQuery(Class<?> valCls,
                      @Nullable
                      @Nullable String idxName)

Specify index with cache value class and index name.

Parameters:
  `valCls` - Cache value class.
  `idxName` - Index name.

#### IndexQuery

    public IndexQuery(String valType,
                      @Nullable
                      @Nullable String idxName)

Specify index with cache value type and index name.

Parameters:
  `valType` - Cache value type.
  `idxName` - Index name.

### Method Detail

#### setCriteria

    public IndexQuery<K,V> setCriteria(IndexQueryCriterion... criteria)

Sets conjunction (AND) criteria for index query.

Parameters:
  `criteria` - Criteria to set.
Returns:
  `this` for chaining.

#### setCriteria

    public IndexQuery<K,V> setCriteria(List<IndexQueryCriterion> criteria)

Sets conjunction (AND) criteria for index query.

Parameters:
  `criteria` - Criteria to set.
Returns:
  `this` for chaining.

#### getCriteria

    public List<IndexQueryCriterion> getCriteria()

Index query criteria.

Returns:
  List of criteria for this index query.

#### getValueType

    public String getValueType()

Cache Value type.

Returns:
  Cache Value type.

#### getIndexName

    public String getIndexName()

Index name.

Returns:
  Index name.

#### setFilter

    public IndexQuery<K,V> setFilter(IgniteBiPredicate<K,V> filter)

Sets remote cache entries filter.

Parameters:
  `filter` - Predicate for remote filtering of query result cursor.
Returns:
  `this` for chaining.

#### getFilter

    public IgniteBiPredicate<K,V> getFilter()

Gets remote cache entries filter.

Returns:
  Filter.

#### setPartition

    public IndexQuery<K,V> setPartition(@Nullable
                                        @Nullable Integer part)

Sets partition number over which this query should iterate. If `null`, query will iterate over all partitions in the cache. Must be in the range [0, N) where N is partition number in the cache.

Parameters:
  `part` - Partition number over which this query should iterate.
Returns:
  `this` for chaining.

#### getPartition

    @Nullable
    public @Nullable Integer getPartition()

Gets partition number over which this query should iterate. Will return `null` if partition was not set. In this case query will iterate over all partitions in the cache.

Returns:
  Partition number or `null`.

${current.year} Copyright © Apache Software Foundation

Follow @ApacheIgnite

Ignite Database and Caching Platform | : ver. 2.15.0
Release Date | : April 25 2023