Query#

VectorQuery#

class VectorQuery(vector, vector_field_name, return_fields=None, filter_expression=None, dtype='float32', num_results=10, return_score=True, dialect=2)[source]#

A query for running a vector search along with an optional filter expression.

Parameters:
  • vector (List[float]) – The vector to perform the vector search with.

  • vector_field_name (str) – The name of the vector field to search against in the database.

  • return_fields (List[str]) – The declared fields to return with search results.

  • filter_expression (FilterExpression, optional) – A filter to apply along with the vector search. Defaults to None.

  • dtype (str, optional) – The dtype of the vector. Defaults to “float32”.

  • num_results (int, optional) – The top k results to return from the vector search. Defaults to 10.

  • return_score (bool, optional) – Whether to return the vector distance. Defaults to True.

  • dialect (int, optional) – The RediSearch query dialect. Defaults to 2.

Raises:

TypeError – If filter_expression is not of type redisvl.query.FilterExpression

get_filter()#

Get the filter expression for the query.

Returns:

The filter for the query.

Return type:

FilterExpression

set_filter(filter_expression=None)#

Set the filter expression for the query.

Parameters:

filter_expression (Optional[FilterExpression], optional) – The filter to apply to the query.

Raises:

TypeError – If filter_expression is not of type redisvl.query.FilterExpression

set_paging(first, limit)#

Set the paging parameters for the query to limit the number of results.

Parameters:
  • first (int) – The zero-indexed offset for which to fetch query results

  • limit (int) – The max number of results to include including the offset

Raises:

TypeError – If first or limit are NOT integers.

property params: Dict[str, Any]#

Return the parameters for the query.

Returns:

The parameters for the query.

Return type:

Dict[str, Any]

property query: Query#

Return a Redis-Py Query object representing the query.

Returns:

The Redis-Py query object.

Return type:

redis.commands.search.query.Query

RangeQuery#

class RangeQuery(vector, vector_field_name, return_fields=None, filter_expression=None, dtype='float32', distance_threshold=0.2, num_results=10, return_score=True, dialect=2)[source]#

A query for running a filtered vector search based on semantic distance threshold.

Parameters:
  • vector (List[float]) – The vector to perform the range query with.

  • vector_field_name (str) – The name of the vector field to search against in the database.

  • return_fields (List[str]) – The declared fields to return with search results.

  • filter_expression (FilterExpression, optional) – A filter to apply along with the range query. Defaults to None.

  • dtype (str, optional) – The dtype of the vector. Defaults to “float32”.

  • distance_threshold (str, float) – The threshold for vector distance. A smaller threshold indicates a stricter semantic search. Defaults to 0.2.

  • num_results (int) – The MAX number of results to return. Defaults to 10.

  • return_score (bool, optional) – Whether to return the vector distance. Defaults to True.

  • dialect (int, optional) – The RediSearch query dialect. Defaults to 2.

Raises:

TypeError – If filter_expression is not of type redisvl.query.FilterExpression

get_filter()#

Get the filter expression for the query.

Returns:

The filter for the query.

Return type:

FilterExpression

set_distance_threshold(distance_threshold)[source]#

Set the distance treshold for the query.

Parameters:

distance_threshold (float) – vector distance

set_filter(filter_expression=None)#

Set the filter expression for the query.

Parameters:

filter_expression (Optional[FilterExpression], optional) – The filter to apply to the query.

Raises:

TypeError – If filter_expression is not of type redisvl.query.FilterExpression

set_paging(first, limit)#

Set the paging parameters for the query to limit the number of results.

Parameters:
  • first (int) – The zero-indexed offset for which to fetch query results

  • limit (int) – The max number of results to include including the offset

Raises:

TypeError – If first or limit are NOT integers.

property distance_threshold: float#

Return the distance threshold for the query.

Returns:

The distance threshold for the query.

Return type:

float

property params: Dict[str, Any]#

Return the parameters for the query.

Returns:

The parameters for the query.

Return type:

Dict[str, Any]

property query: Query#

Return a Redis-Py Query object representing the query.

Returns:

The Redis-Py query object.

Return type:

redis.commands.search.query.Query

FilterQuery#

class FilterQuery(filter_expression, return_fields=None, num_results=10, dialect=2, params=None)[source]#

A query for a running a filtered search with a filter expression.

Parameters:
  • filter_expression (FilterExpression) – The filter expression to query for.

  • return_fields (Optional[List[str]], optional) – The fields to return.

  • num_results (Optional[int], optional) – The number of results to return. Defaults to 10.

  • params (Optional[Dict[str, Any]], optional) – The parameters for the query. Defaults to None.

  • dialect (int)

Raises:

TypeError – If filter_expression is not of type redisvl.query.FilterExpression

from redisvl.query import FilterQuery
from redisvl.query.filter import Tag

t = Tag("brand") == "Nike"
q = FilterQuery(return_fields=["brand", "price"], filter_expression=t)
get_filter()#

Get the filter expression for the query.

Returns:

The filter for the query.

Return type:

FilterExpression

set_filter(filter_expression=None)#

Set the filter expression for the query.

Parameters:

filter_expression (Optional[FilterExpression], optional) – The filter to apply to the query.

Raises:

TypeError – If filter_expression is not of type redisvl.query.FilterExpression

set_paging(first, limit)#

Set the paging parameters for the query to limit the number of results.

Parameters:
  • first (int) – The zero-indexed offset for which to fetch query results

  • limit (int) – The max number of results to include including the offset

Raises:

TypeError – If first or limit are NOT integers.

property query: Query#

Return a Redis-Py Query object representing the query.

Returns:

The Redis-Py query object.

Return type:

redis.commands.search.query.Query

CountQuery#

class CountQuery(filter_expression, dialect=2, params=None)[source]#

A query for a simple count operation provided some filter expression.

Parameters:
  • filter_expression (FilterExpression) – The filter expression to query for.

  • params (Optional[Dict[str, Any]], optional) – The parameters for the query. Defaults to None.

  • dialect (int)

Raises:

TypeError – If filter_expression is not of type redisvl.query.FilterExpression

from redisvl.query import CountQuery
from redisvl.query.filter import Tag

t = Tag("brand") == "Nike"
query = CountQuery(filter_expression=t)

count = index.query(query)
get_filter()#

Get the filter expression for the query.

Returns:

The filter for the query.

Return type:

FilterExpression

set_filter(filter_expression=None)#

Set the filter expression for the query.

Parameters:

filter_expression (Optional[FilterExpression], optional) – The filter to apply to the query.

Raises:

TypeError – If filter_expression is not of type redisvl.query.FilterExpression

set_paging(first, limit)#

Set the paging parameters for the query to limit the number of results.

Parameters:
  • first (int) – The zero-indexed offset for which to fetch query results

  • limit (int) – The max number of results to include including the offset

Raises:

TypeError – If first or limit are NOT integers.

property params: Dict[str, Any]#

The parameters for the query.

Returns:

The parameters for the query.

Return type:

Dict[str, Any]

property query: Query#

The loaded Redis-Py query.

Returns:

The Redis-Py query object.

Return type:

redis.commands.search.query.Query