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, hybrid_policy=None, batch_size=None, normalize_vector_distance=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.
- 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
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_batch_size(batch_size)
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)
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)
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
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_batch_size(batch_size)
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)
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)
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)
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)
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')
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)
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.