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.
  • 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.

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)

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)

Also, you can specify a namespace to operate on. When no namespace is provided, the default namespace will be used.

index.range(..., namespace="ns")