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 redis/redis-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, hybrid_policy=None, batch_size=None, normalize_vector_distance=False)[source]#

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.

  • hybrid_policy (Optional[str]) – Controls how filters are applied during vector search. Options are “BATCHES” (paginates through small batches of nearest neighbors) or “ADHOC_BF” (computes scores for all vectors passing the filter). “BATCHES” mode is typically faster for queries with selective filters. “ADHOC_BF” mode is better when filters match a large portion of the dataset. Defaults to None, which lets Redis auto-select the optimal policy.

  • batch_size (Optional[int]) – When hybrid_policy is “BATCHES”, controls the number of vectors to fetch in each batch. Larger values may improve performance at the cost of memory usage. Only applies when hybrid_policy=”BATCHES”. Defaults to None, which lets Redis auto-select an appropriate batch size.

  • normalize_vector_distance (bool) – Redis supports 3 distance metrics: L2 (euclidean), IP (inner product), and COSINE. By default, L2 distance returns an unbounded value. COSINE distance returns a value between 0 and 2. IP returns a value determined by the magnitude of the vector. Setting this flag to true converts COSINE and L2 distance to a similarity score between 0 and 1. Note: setting this flag to true for IP will throw a warning since by definition COSINE similarity is normalized IP.

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_batch_size(batch_size)[source]#

Set the batch size for the query.

Parameters:

batch_size (int) – The batch size to use when hybrid_policy is “BATCHES”.

Raises:
  • TypeError – If batch_size is not an integer

  • ValueError – If batch_size is not positive

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.

set_hybrid_policy(hybrid_policy)[source]#

Set the hybrid policy for the query.

Parameters:

hybrid_policy (str) – The hybrid policy to use. Options are “BATCHES” or “ADHOC_BF”.

Raises:

ValueError – If hybrid_policy is not one of the valid options

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 batch_size: int | None#

Return the batch size for the query.

Returns:

The batch size for the query.

Return type:

Optional[int]

property filter: str | FilterExpression#

The filter expression for the query.

property hybrid_policy: str | None#

Return the hybrid policy for the query.

Returns:

The hybrid policy for the query.

Return type:

Optional[str]

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, epsilon=None, num_results=10, return_score=True, dialect=2, sort_by=None, in_order=False, hybrid_policy=None, batch_size=None, normalize_vector_distance=False)[source]#

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 (float) – The threshold for vector distance. A smaller threshold indicates a stricter semantic search. Defaults to 0.2.

  • epsilon (Optional[float]) – The relative factor for vector range queries, setting boundaries for candidates within radius * (1 + epsilon). This controls how extensive the search is beyond the specified radius. Higher values increase recall at the expense of performance. Defaults to None, which uses the index-defined epsilon (typically 0.01).

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

  • hybrid_policy (Optional[str]) – Controls how filters are applied during vector search. Options are “BATCHES” (paginates through small batches of nearest neighbors) or “ADHOC_BF” (computes scores for all vectors passing the filter). “BATCHES” mode is typically faster for queries with selective filters. “ADHOC_BF” mode is better when filters match a large portion of the dataset. Defaults to None, which lets Redis auto-select the optimal policy.

  • batch_size (Optional[int]) – When hybrid_policy is “BATCHES”, controls the number of vectors to fetch in each batch. Larger values may improve performance at the cost of memory usage. Only applies when hybrid_policy=”BATCHES”. Defaults to None, which lets Redis auto-select an appropriate batch size.

  • normalize_vector_distance (bool) – Redis supports 3 distance metrics: L2 (euclidean), IP (inner product), and COSINE. By default, L2 distance returns an unbounded value. COSINE distance returns a value between 0 and 2. IP returns a value determined by the magnitude of the vector. Setting this flag to true converts COSINE and L2 distance to a similarity score between 0 and 1. Note: setting this flag to true for IP will throw a warning since by definition COSINE similarity is normalized IP.

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_batch_size(batch_size)[source]#

Set the batch size for the query.

Parameters:

batch_size (int) – The batch size to use when hybrid_policy is “BATCHES”.

Raises:
  • TypeError – If batch_size is not an integer

  • ValueError – If batch_size is not positive

set_distance_threshold(distance_threshold)[source]#

Set the distance threshold for the query.

Parameters:

distance_threshold (float) – Vector distance threshold.

Raises:
  • TypeError – If distance_threshold is not a float or int

  • ValueError – If distance_threshold is negative

set_epsilon(epsilon)[source]#

Set the epsilon parameter for the range query.

Parameters:

epsilon (float) – The relative factor for vector range queries, setting boundaries for candidates within radius * (1 + epsilon).

Raises:
  • TypeError – If epsilon is not a float or int

  • ValueError – If epsilon is negative

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.

set_hybrid_policy(hybrid_policy)[source]#

Set the hybrid policy for the query.

Parameters:

hybrid_policy (str) – The hybrid policy to use. Options are “BATCHES” or “ADHOC_BF”.

Raises:

ValueError – If hybrid_policy is not one of the valid options

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 batch_size: int | None#

Return the batch size for the query.

Returns:

The batch size for the query.

Return type:

Optional[int]

property distance_threshold: float#

Return the distance threshold for the query.

Returns:

The distance threshold for the query.

Return type:

float

property epsilon: float | None#

Return the epsilon for the query.

Returns:

The epsilon for the query, or None if not set.

Return type:

Optional[float]

property filter: str | FilterExpression#

The filter expression for the query.

property hybrid_policy: str | None#

Return the hybrid policy for the query.

Returns:

The hybrid policy for the query.

Return type:

Optional[str]

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.

HybridQuery#

class HybridQuery(text, text_field_name, vector, vector_field_name, text_scorer='BM25STD', filter_expression=None, alpha=0.7, dtype='float32', num_results=10, return_fields=None, stopwords='english', dialect=2)[source]#

Bases: AggregationQuery

HybridQuery combines text and vector search in Redis. It allows you to perform a hybrid search using both text and vector similarity. It scores documents based on a weighted combination of text and vector similarity.

from redisvl.query import HybridQuery
from redisvl.index import SearchIndex

index = SearchIndex.from_yaml("path/to/index.yaml")

query = HybridQuery(
    text="example text",
    text_field_name="text_field",
    vector=[0.1, 0.2, 0.3],
    vector_field_name="vector_field",
    text_scorer="BM25STD",
    filter_expression=None,
    alpha=0.7,
    dtype="float32",
    num_results=10,
    return_fields=["field1", "field2"],
    stopwords="english",
    dialect=2,
)

results = index.query(query)

Instantiates a HybridQuery object.

Parameters:
  • text (str) – The text to search for.

  • text_field_name (str) – The text field name to search in.

  • vector (Union[bytes, List[float]]) – The vector to perform vector similarity search.

  • vector_field_name (str) – The vector field name to search in.

  • text_scorer (str, optional) – The text scorer to use. Options are {TFIDF, TFIDF.DOCNORM, BM25, DISMAX, DOCSCORE, BM25STD}. Defaults to “BM25STD”.

  • filter_expression (Optional[FilterExpression], optional) – The filter expression to use. Defaults to None.

  • alpha (float, optional) – The weight of the vector similarity. Documents will be scored as: hybrid_score = (alpha) * vector_score + (1-alpha) * text_score. Defaults to 0.7.

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

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

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

  • stopwords (Optional[Union[str, Set[str]]], optional) – The stopwords to remove from the provided text prior to searchuse. If a string such as “english” “german” is provided then a default set of stopwords for that language will be used. if a list, set, or tuple of strings is provided then those will be used as stopwords. Defaults to “english”. if set to “None” then no stopwords will be removed.

  • dialect (int, optional) – The Redis dialect version. Defaults to 2.

Raises:
  • ValueError – If the text string is empty, or if the text string becomes empty after stopwords are removed.

  • TypeError – If the stopwords are not a set, list, or tuple of strings.

add_scores()#

If set, includes the score as an ordinary field of the row.

Return type:

AggregateRequest

apply(**kwexpr)#

Specify one or more projection expressions to add to each result

### Parameters

  • kwexpr: One or more key-value pairs for a projection. The key is

    the alias for the projection, and the value is the projection expression itself, for example apply(square_root=”sqrt(@foo)”)

Return type:

AggregateRequest

dialect(dialect)#

Add a dialect field to the aggregate command.

  • dialect - dialect version to execute the query under

Parameters:

dialect (int)

Return type:

AggregateRequest

filter(expressions)#

Specify filter for post-query results using predicates relating to values in the result set.

### Parameters

  • fields: Fields to group by. This can either be a single string,

    or a list of strings.

Parameters:

expressions (str | List[str])

Return type:

AggregateRequest

group_by(fields, *reducers)#

Specify by which fields to group the aggregation.

### Parameters

  • fields: Fields to group by. This can either be a single string,

    or a list of strings. both cases, the field should be specified as @field.

  • reducers: One or more reducers. Reducers may be found in the

    aggregation module.

Parameters:
  • fields (List[str])

  • reducers (Reducer | List[Reducer])

Return type:

AggregateRequest

limit(offset, num)#

Sets the limit for the most recent group or query.

If no group has been defined yet (via group_by()) then this sets the limit for the initial pool of results from the query. Otherwise, this limits the number of items operated on from the previous group.

Setting a limit on the initial search results may be useful when attempting to execute an aggregation on a sample of a large data set.

### Parameters

  • offset: Result offset from which to begin paging

  • num: Number of results to return

Example of sorting the initial results:

` AggregateRequest("@sale_amount:[10000, inf]")            .limit(0, 10)            .group_by("@state", r.count()) `

Will only group by the states found in the first 10 results of the query @sale_amount:[10000, inf]. On the other hand,

` AggregateRequest("@sale_amount:[10000, inf]")            .limit(0, 1000)            .group_by("@state", r.count()            .limit(0, 10) `

Will group all the results matching the query, but only return the first 10 groups.

If you only wish to return a top-N style query, consider using sort_by() instead.

Parameters:
  • offset (int)

  • num (int)

Return type:

AggregateRequest

load(*fields)#

Indicate the fields to be returned in the response. These fields are returned in addition to any others implicitly specified.

### Parameters

  • fields: If fields not specified, all the fields will be loaded.

Otherwise, fields should be given in the format of @field.

Parameters:

fields (List[str])

Return type:

AggregateRequest

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:

AggregateRequest

sort_by(*fields, **kwargs)#

Indicate how the results should be sorted. This can also be used for top-N style queries

### Parameters

  • fields: The fields by which to sort. This can be either a single

    field or a list of fields. If you wish to specify order, you can use the Asc or Desc wrapper classes.

  • max: Maximum number of results to return. This can be

    used instead of LIMIT and is also faster.

Example of sorting by foo ascending and bar descending:

` sort_by(Asc("@foo"), Desc("@bar")) `

Return the top 10 customers:

` AggregateRequest()            .group_by("@customer", r.sum("@paid").alias(FIELDNAME))            .sort_by(Desc("@paid"), max=10) `

Parameters:

fields (List[str])

Return type:

AggregateRequest

with_schema()#

If set, the schema property will contain a list of [field, type] entries in the result object.

Return type:

AggregateRequest

property params: Dict[str, Any]#

Return the parameters for the aggregation.

Returns:

The parameters for the aggregation.

Return type:

Dict[str, Any]

property stopwords: Set[str]#

Return the stopwords used in the query. :returns: The stopwords used in the query. :rtype: Set[str]

TextQuery#

class TextQuery(text, text_field_name, text_scorer='BM25STD', filter_expression=None, return_fields=None, num_results=10, return_score=True, dialect=2, sort_by=None, in_order=False, params=None, stopwords='english')[source]#

Bases: BaseQuery

TextQuery is a query for running a full text search, along with an optional filter expression.

from redisvl.query import TextQuery
from redisvl.index import SearchIndex

index = SearchIndex.from_yaml(index.yaml)

query = TextQuery(
    text="example text",
    text_field_name="text_field",
    text_scorer="BM25STD",
    filter_expression=None,
    num_results=10,
    return_fields=["field1", "field2"],
    stopwords="english",
    dialect=2,
)

results = index.query(query)

A query for running a full text search, along with an optional filter expression.

Parameters:
  • text (str) – The text string to perform the text search with.

  • text_field_name (str) – The name of the document field to perform text search on.

  • text_scorer (str, optional) – The text scoring algorithm to use. Defaults to BM25STD. Options are {TFIDF, BM25STD, BM25, TFIDF.DOCNORM, DISMAX, DOCSCORE}. See https://redis.io/docs/latest/develop/interact/search-and-query/advanced-concepts/scoring/

  • filter_expression (Union[str, FilterExpression], optional) – A filter to apply along with the text search. Defaults to None.

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

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

  • return_score (bool, optional) – Whether to return the text score. 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 text score.

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

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

  • stopwords (Optional[Union[str, Set[str]]) – The set of stop words to remove from the query text. If a language like ‘english’ or ‘spanish’ is provided a default set of stopwords for that language will be used. Users may specify their own stop words by providing a List or Set of words. if set to None, then no words will be removed. Defaults to ‘english’.

Raises:
  • ValueError – if stopwords language string cannot be loaded.

  • TypeError – If stopwords is not a valid iterable set of strings.

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.

FilterQuery#

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

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)[source]#

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.