Query

Query classes in RedisVL provide a structured way to define simple or complex queries for different use cases. Each query class wraps the redis-py Query module https://github.com/redis/redis-py/blob/master/redis/commands/search/query.py with extended functionality for ease-of-use.

VectorQuery

class VectorQuery(vector, vector_field_name, return_fields=None, filter_expression=None, dtype='float32', num_results=10, return_score=True, dialect=2, sort_by=None, in_order=False)

Bases: BaseVectorQuery, BaseQuery

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 (Union [ str , 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.
    • sort_by (Optional [ str ]) – The field to order the results by. Defaults to None. Results will be ordered by vector distance.
    • in_order (bool) – Requires the terms in the field to have the same order as the terms in the query filter, regardless of the offsets between them. Defaults to False.
  • Raises: TypeError – If filter_expression is not of type redisvl.query.FilterExpression

NOTE

Learn more about vector queries in Redis: https://redis.io/docs/interact/search-and-query/search/vectors/#knn-search

dialect(dialect)

Add a dialect field to the query.

  • dialect - dialect version to execute the query under
  • Parameters: dialect (int)
  • Return type: Query

expander(expander)

Add a expander field to the query.

  • expander - the name of the expander
  • Parameters: expander (str)
  • Return type: Query

in_order()

Match only documents where the query terms appear in the same order in the document. i.e. for the query “hello world”, we do not match “world hello”

  • Return type: Query

language(language)

Analyze the query as being in the specified language.

  • Parameters: language (str) – The language (e.g. chinese or english)
  • Return type: Query

limit_fields(*fields)

Limit the search to specific TEXT fields only.

  • fields: A list of strings, case sensitive field names

from the defined schema.

  • Parameters: fields (List [ str ])
  • Return type: Query

limit_ids(*ids)

Limit the results to a specific set of pre-known document ids of any length.

  • Return type: Query

no_content()

Set the query to only return ids and not the document content.

  • Return type: Query

no_stopwords()

Prevent the query from being filtered for stopwords. Only useful in very big queries that you are certain contain no stopwords.

  • Return type: Query

paging(offset, num)

Set the paging for the query (defaults to 0..10).

  • offset: Paging offset for the results. Defaults to 0
  • num: How many results do we want
  • Parameters:
    • offset (int)
    • num (int)
  • Return type: Query

query_string()

Return the query string of this query only.

  • Return type: str

return_fields(*fields)

Add fields to return fields.

  • Return type: Query

scorer(scorer)

Use a different scoring function to evaluate document relevance. Default is TFIDF.

  • Parameters: scorer (str) – The scoring function to use (e.g. TFIDF.DOCNORM or BM25)
  • Return type: Query

set_filter(filter_expression=None)

Set the filter expression for the query.

  • Parameters: filter_expression (Optional [ Union [ str , FilterExpression ] ] , optional) – The filter expression or query string to use on the query.
  • Raises: TypeError – If filter_expression is not a valid FilterExpression or string.

slop(slop)

Allow a maximum of N intervening non matched terms between phrase terms (0 means exact phrase).

  • Parameters: slop (int)
  • Return type: Query

sort_by(field, asc=True)

Add a sortby field to the query.

  • field - the name of the field to sort by
  • asc - when True, sorting will be done in asceding order
  • Parameters:
    • field (str)
    • asc (bool)
  • Return type: Query

timeout(timeout)

overrides the timeout parameter of the module

  • Parameters: timeout (float)
  • Return type: Query

verbatim()

Set the query to be verbatim, i.e. use no query expansion or stemming.

  • Return type: Query

with_payloads()

Ask the engine to return document payloads.

  • Return type: Query

with_scores()

Ask the engine to return document search scores.

  • Return type: Query

property filter: str | FilterExpression

The filter expression for the query.

property params: Dict[str, Any]

Return the parameters for the query.

  • Returns: The parameters for the query.
  • Return type: Dict[str, Any]

property query: BaseQuery

Return self as the query object.

VectorRangeQuery

class VectorRangeQuery(vector, vector_field_name, return_fields=None, filter_expression=None, dtype='float32', distance_threshold=0.2, num_results=10, return_score=True, dialect=2, sort_by=None, in_order=False)

Bases: BaseVectorQuery, BaseQuery

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 (Union [ str , 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.
    • sort_by (Optional [ str ]) – The field to order the results by. Defaults to None. Results will be ordered by vector distance.
    • in_order (bool) – Requires the terms in the field to have the same order as the terms in the query filter, regardless of the offsets between them. Defaults to False.
  • Raises: TypeError – If filter_expression is not of type redisvl.query.FilterExpression

NOTE

Learn more about vector range queries: https://redis.io/docs/interact/search-and-query/search/vectors/#range-query

dialect(dialect)

Add a dialect field to the query.

  • dialect - dialect version to execute the query under
  • Parameters: dialect (int)
  • Return type: Query

expander(expander)

Add a expander field to the query.

  • expander - the name of the expander
  • Parameters: expander (str)
  • Return type: Query

in_order()

Match only documents where the query terms appear in the same order in the document. i.e. for the query “hello world”, we do not match “world hello”

  • Return type: Query

language(language)

Analyze the query as being in the specified language.

  • Parameters: language (str) – The language (e.g. chinese or english)
  • Return type: Query

limit_fields(*fields)

Limit the search to specific TEXT fields only.

  • fields: A list of strings, case sensitive field names

from the defined schema.

  • Parameters: fields (List [ str ])
  • Return type: Query

limit_ids(*ids)

Limit the results to a specific set of pre-known document ids of any length.

  • Return type: Query

no_content()

Set the query to only return ids and not the document content.

  • Return type: Query

no_stopwords()

Prevent the query from being filtered for stopwords. Only useful in very big queries that you are certain contain no stopwords.

  • Return type: Query

paging(offset, num)

Set the paging for the query (defaults to 0..10).

  • offset: Paging offset for the results. Defaults to 0
  • num: How many results do we want
  • Parameters:
    • offset (int)
    • num (int)
  • Return type: Query

query_string()

Return the query string of this query only.

  • Return type: str

return_fields(*fields)

Add fields to return fields.

  • Return type: Query

scorer(scorer)

Use a different scoring function to evaluate document relevance. Default is TFIDF.

  • Parameters: scorer (str) – The scoring function to use (e.g. TFIDF.DOCNORM or BM25)
  • Return type: Query

set_distance_threshold(distance_threshold)

Set the distance threshold 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 [ Union [ str , FilterExpression ] ] , optional) – The filter expression or query string to use on the query.
  • Raises: TypeError – If filter_expression is not a valid FilterExpression or string.

slop(slop)

Allow a maximum of N intervening non matched terms between phrase terms (0 means exact phrase).

  • Parameters: slop (int)
  • Return type: Query

sort_by(field, asc=True)

Add a sortby field to the query.

  • field - the name of the field to sort by
  • asc - when True, sorting will be done in asceding order
  • Parameters:
    • field (str)
    • asc (bool)
  • Return type: Query

timeout(timeout)

overrides the timeout parameter of the module

  • Parameters: timeout (float)
  • Return type: Query

verbatim()

Set the query to be verbatim, i.e. use no query expansion or stemming.

  • Return type: Query

with_payloads()

Ask the engine to return document payloads.

  • Return type: Query

with_scores()

Ask the engine to return document search scores.

  • Return type: Query

property distance_threshold: float

Return the distance threshold for the query.

  • Returns: The distance threshold for the query.
  • Return type: float

property filter: str | FilterExpression

The filter expression for the query.

property params: Dict[str, Any]

Return the parameters for the query.

  • Returns: The parameters for the query.
  • Return type: Dict[str, Any]

property query: BaseQuery

Return self as the query object.

FilterQuery

class FilterQuery(filter_expression=None, return_fields=None, num_results=10, dialect=2, sort_by=None, in_order=False, params=None)

Bases: BaseQuery

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

  • Parameters:
    • filter_expression (Optional [ Union [ str , FilterExpression ] ]) – The optional filter expression to query with. Defaults to ‘*’.
    • return_fields (Optional [ List [ str ] ] , optional) – The fields to return.
    • num_results (Optional [ int ] , optional) – The number of results to return. Defaults to 10.
    • dialect (int , optional) – The query dialect. Defaults to 2.
    • sort_by (Optional [ str ] , optional) – The field to order the results by. Defaults to None.
    • in_order (bool , optional) – Requires the terms in the field to have the same order as the terms in the query filter. Defaults to False.
    • params (Optional [ Dict [ str , Any ] ] , optional) – The parameters for the query. Defaults to None.
  • Raises: TypeError – If filter_expression is not of type redisvl.query.FilterExpression

dialect(dialect)

Add a dialect field to the query.

  • dialect - dialect version to execute the query under
  • Parameters: dialect (int)
  • Return type: Query

expander(expander)

Add a expander field to the query.

  • expander - the name of the expander
  • Parameters: expander (str)
  • Return type: Query

in_order()

Match only documents where the query terms appear in the same order in the document. i.e. for the query “hello world”, we do not match “world hello”

  • Return type: Query

language(language)

Analyze the query as being in the specified language.

  • Parameters: language (str) – The language (e.g. chinese or english)
  • Return type: Query

limit_fields(*fields)

Limit the search to specific TEXT fields only.

  • fields: A list of strings, case sensitive field names

from the defined schema.

  • Parameters: fields (List [ str ])
  • Return type: Query

limit_ids(*ids)

Limit the results to a specific set of pre-known document ids of any length.

  • Return type: Query

no_content()

Set the query to only return ids and not the document content.

  • Return type: Query

no_stopwords()

Prevent the query from being filtered for stopwords. Only useful in very big queries that you are certain contain no stopwords.

  • Return type: Query

paging(offset, num)

Set the paging for the query (defaults to 0..10).

  • offset: Paging offset for the results. Defaults to 0
  • num: How many results do we want
  • Parameters:
    • offset (int)
    • num (int)
  • Return type: Query

query_string()

Return the query string of this query only.

  • Return type: str

return_fields(*fields)

Add fields to return fields.

  • Return type: Query

scorer(scorer)

Use a different scoring function to evaluate document relevance. Default is TFIDF.

  • Parameters: scorer (str) – The scoring function to use (e.g. TFIDF.DOCNORM or BM25)
  • Return type: Query

set_filter(filter_expression=None)

Set the filter expression for the query.

  • Parameters: filter_expression (Optional [ Union [ str , FilterExpression ] ] , optional) – The filter expression or query string to use on the query.
  • Raises: TypeError – If filter_expression is not a valid FilterExpression or string.

slop(slop)

Allow a maximum of N intervening non matched terms between phrase terms (0 means exact phrase).

  • Parameters: slop (int)
  • Return type: Query

sort_by(field, asc=True)

Add a sortby field to the query.

  • field - the name of the field to sort by
  • asc - when True, sorting will be done in asceding order
  • Parameters:
    • field (str)
    • asc (bool)
  • Return type: Query

timeout(timeout)

overrides the timeout parameter of the module

  • Parameters: timeout (float)
  • Return type: Query

verbatim()

Set the query to be verbatim, i.e. use no query expansion or stemming.

  • Return type: Query

with_payloads()

Ask the engine to return document payloads.

  • Return type: Query

with_scores()

Ask the engine to return document search scores.

  • Return type: Query

property filter: str | FilterExpression

The filter expression for the query.

property params: Dict[str, Any]

Return the query parameters.

property query: BaseQuery

Return self as the query object.

CountQuery

class CountQuery(filter_expression=None, dialect=2, params=None)

Bases: BaseQuery

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

  • Parameters:
    • filter_expression (Optional [ Union [ str , FilterExpression ] ]) – The filter expression to query with. Defaults to None.
    • 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)

dialect(dialect)

Add a dialect field to the query.

  • dialect - dialect version to execute the query under
  • Parameters: dialect (int)
  • Return type: Query

expander(expander)

Add a expander field to the query.

  • expander - the name of the expander
  • Parameters: expander (str)
  • Return type: Query

in_order()

Match only documents where the query terms appear in the same order in the document. i.e. for the query “hello world”, we do not match “world hello”

  • Return type: Query

language(language)

Analyze the query as being in the specified language.

  • Parameters: language (str) – The language (e.g. chinese or english)
  • Return type: Query

limit_fields(*fields)

Limit the search to specific TEXT fields only.

  • fields: A list of strings, case sensitive field names

from the defined schema.

  • Parameters: fields (List [ str ])
  • Return type: Query

limit_ids(*ids)

Limit the results to a specific set of pre-known document ids of any length.

  • Return type: Query

no_content()

Set the query to only return ids and not the document content.

  • Return type: Query

no_stopwords()

Prevent the query from being filtered for stopwords. Only useful in very big queries that you are certain contain no stopwords.

  • Return type: Query

paging(offset, num)

Set the paging for the query (defaults to 0..10).

  • offset: Paging offset for the results. Defaults to 0
  • num: How many results do we want
  • Parameters:
    • offset (int)
    • num (int)
  • Return type: Query

query_string()

Return the query string of this query only.

  • Return type: str

return_fields(*fields)

Add fields to return fields.

  • Return type: Query

scorer(scorer)

Use a different scoring function to evaluate document relevance. Default is TFIDF.

  • Parameters: scorer (str) – The scoring function to use (e.g. TFIDF.DOCNORM or BM25)
  • Return type: Query

set_filter(filter_expression=None)

Set the filter expression for the query.

  • Parameters: filter_expression (Optional [ Union [ str , FilterExpression ] ] , optional) – The filter expression or query string to use on the query.
  • Raises: TypeError – If filter_expression is not a valid FilterExpression or string.

slop(slop)

Allow a maximum of N intervening non matched terms between phrase terms (0 means exact phrase).

  • Parameters: slop (int)
  • Return type: Query

sort_by(field, asc=True)

Add a sortby field to the query.

  • field - the name of the field to sort by
  • asc - when True, sorting will be done in asceding order
  • Parameters:
    • field (str)
    • asc (bool)
  • Return type: Query

timeout(timeout)

overrides the timeout parameter of the module

  • Parameters: timeout (float)
  • Return type: Query

verbatim()

Set the query to be verbatim, i.e. use no query expansion or stemming.

  • Return type: Query

with_payloads()

Ask the engine to return document payloads.

  • Return type: Query

with_scores()

Ask the engine to return document search scores.

  • Return type: Query

property filter: str | FilterExpression

The filter expression for the query.

property params: Dict[str, Any]

Return the query parameters.

property query: BaseQuery

Return self as the query object.

RATE THIS PAGE
Back to top ↑