Method
The range method allows you to retrieve vectors from the index within a specified range. The function accepts the following parameters:
- cursor: A cursor to start the range query.
- prefix: A string prefix to match vector IDs. All vectors with IDs that start with this prefix will be retrieved.
- limit: The maximum number of vectors to retrieve in a single query.
- include_vectors: A boolean flag indicating whether to include vectors in the range results.
- include_metadata: A boolean flag indicating whether to include metadata in the range results.
- include_data: A boolean flag indicating whether to include data in the range results.
As response, the object has the following fields:
- next_cursor: A cursor indicating the position to start the next range query. If- "", there are no more results.
- vectors: A list containing information for each vector, including- id,- vector, and- metadata.
The range command is stateless, meaning you need to pass all of the parameters
in each subsequent request.
Range Example
from upstash_vector import Index
index = Index.from_env()
# Execute the range query
range_result = index.range(
    cursor="",
    limit=10,
    include_vectors=False,
    include_metadata=True,
    include_data=True,
)
# Print the range result
print("Next Cursor:", range_result.next_cursor)
for vector_info in range_result.vectors:
    print("ID:", vector_info.id)
    print("Vector:", vector_info.vector)
    print("Metadata:", vector_info.metadata)
    print("Data:", vector_info.data)
Range with id prefix
This will retrieve all vectors with IDs that start with the prefix.
index.range(prefix="id-")
Scanning Whole Index
For scanning the entire index, you can use a similar loop as shown below:
res = index.range(cursor="", limit=5)
print(res.vectors)
while res.next_cursor != "":
    res = index.range(cursor=res.next_cursor, limit=10)
    print(res.vectors)
index.range(..., namespace="ns")