--- title: "Query Index" url: https://docs.catalyst.zoho.com/en/sdk/python/v1/cloud-scale/nosql/query-index/ description: "Catalyst NoSQL is a fully-managed, powerful database that provides you with a non-relational, non-SQL means of data storage. This page describes the SDK method to query a NoSQL index." last_updated: 2026-09-08T11:07:33Z service: Cloud Scale type: general related_links: - name: "NoSQL" url: /en/cloud-scale/help/nosql/introduction - name: "Table Keys" url: /en/cloud-scale/help/nosql/components/#table-keys - name: "JavaScript SDK" url: /en/sdk/javascript/v1/cloudscale/nosql/query-index/ --- # Query Index Catalyst enables you to query a [NoSQL](https://docs.catalyst.zoho.com/en/cloud-scale/help/nosql/introduction/) index and retrieve data by identifying the items using the [primary keys](https://docs.catalyst.zoho.com/en/cloud-scale/help/nosql/components/#table-keys) of the index. Indexing allows you to execute alternate queries on the table data without making use of the primary keys of the main table. You can configure indexes from the Catalyst console. You can use just the partition key or a combination of the partition key and sort key of the index to retrieve an item. > **Note:** Catalyst enables you to retrieve a maximum of 100 items in bulk from a NoSQL table with pagination from a single SDK operation. You must use the `start_key` token received in the SDK response and construct the logic for pagination. You can define the key condition that identifies the item by specifying the attributes, their required values, and the supported operator to be used. You can also specify additional conditions with the group operators. The supported operators are represented as shown below.
Operators Notation
CONTAINS `contains`
NOT_CONTAINS `not_contains`
BEGINS_WITH `begins_with`
ENDS_WITH `ends_with`
IN `in`
NOT_IN `not_in`
BETWEEN `between`
NOT_BETWEEN `not_between`
EQUALS `equals`
NOT_EQUALS `not_equals`
GREATER_THAN `greater_than`
LESS_THAN `less_than`
GREATER_THAN_OR_EQUALS `greater_equal`
LESSER_THAN_OR_EQUALS `less_equal`
AND `AND`
OR `OR`
In the example below, the query is performed with an index referenced by its unique Index ID. The query identifies the items using the index's partition key `fruitColor` and specifying the condition value as "yellow". We also specify an additional condition with the attribute `fruitType` matching "citrus". The query is done using the `query_index()` method. Catalyst NoSQL also lets you define other elements of the query, such using `consistent_read` to indicate if the read operation must be done using the master or a slave cluster, limiting the number of rows to be returned, and specifying the sorting order as ascending. > **Note:** In the master-slave replication, the master contains all the data of the database, and the slave contains copies from the master. Performing a read operation from the slave can reduce the overall cost with the trade-off being a minor delay in the updated data being reflected. ```python # Query a NoSQL table index to fetch the items identified by the partition key fruitColour with the value "yellow"# Pass the index's unique ID cres = table.query_index('6759000000740017', { # Set consistent_read to true to query from master. If set to false, it is queried from slave. 'consistent_read': 'true',# Set forward_scan to true to sort the results in ascending order. Otherwise, it is sorted in the descending order. 'forwardScan': 'true',# Limit the number of rows to be returned by specifying a value 'limit': 10,# Define the key condition to query the items with 'key_condition': { 'attribute': 'fruitColor', 'operator': 'equals', 'value': { 'S': 'yellow' } }, # Define additional conditions to query the data with, using group operators 'other_condition': { 'group_operator': 'AND', 'group': [ { 'attribute': 'fruitType', 'operator': 'equals', 'value': { 'S': 'citrus' } } ] } }) print(res) ```