查询
查询 API
VectorQuery
类 VectorQuery(vector, vector_field_name, return_fields=None, filter_expression=None, dtype='float32', num_results=10, return_score=True, dialect=2)
用于运行向量搜索并附加可选筛选表达式的查询。
- 参数
- vector (列表 *[*浮点数 ]) – 需要进行向量搜索的向量。
- vector_field_name (str) – 在数据库中搜索向量的字段名称。
- return_fields (List *[*str ]) – 声明的字段,带有搜索结果返回。
- filter_expression (FilterExpression , optional) – 适用于矢量搜索的过滤器。默认为 None。
- dtype (str , optional) – 矢量的 dtype。默认为 “float32”。
- num_results (int , optional) – 矢量搜索返回的顶部 k 个结果。默认为 10。
- return_score (bool , optional) – 是否返回矢量距离。默认为 True。
- dialect (int , optional) – RediSearch 查询方言。默认为 2。
- Raises: TypeError – 如果 filter_expression 不属于 redisvl.query.FilterExpression
注意
了解有关 Redis 中矢量查询的更多信息:/docs/latest/develop/interact/search-and-query/search/vectors/#knn-searchget_filter()
获取查询的筛选表达式。
- Returns: 查询的筛选。
- 类型: FilterExpression
set_filter(filter_expression=None)
设置查询的筛选表达式。
- 参数: filter_expression (可选 [FilterExpression ] , optional) – 适用于查询的筛选。
- Raises: TypeError – 如果 filter_expression 不属于 redisvl.query.FilterExpression
set_paging(first, limit)
设置查询的分页参数以限制结果数量。
- 参数
- first (int) – 获取查询结果的零索引偏移量
- limit (int) – 包括偏移在内的最大结果数
- 引发: TypeError – 如果 first 或 limit 不是整数。
property params : Dict[str, Any]
返回查询的参数。
- 返回:查询的参数。
- 类型: Dict[str, Any]
property query : Query
返回表示查询的 Redis-Py Query 对象。
- 返回:Redis-Py 查询对象。
- 类型: redis.commands.search.query.Query
RangeQuery
类 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)
基于语义距离阈值运行筛选矢量搜索的查询。
- 参数
- vector (List *[*float ]) – 使用该矢量执行范围查询。
- vector_field_name (str) – 在数据库中搜索向量的字段名称。
- return_fields (List *[*str ]) – 声明的字段,带有搜索结果返回。
- filter_expression (FilterExpression , optional) – 适用于范围查询的过滤器。默认为 None。
- dtype (str , optional) – 矢量的 dtype。默认为 “float32”。
- distance_threshold (字符串 , 浮点数) – 向量距离阈值。阈值越小,语义搜索越严格。默认值为 0.2。
- num_results (整数) – 要返回的最大结果数。默认值为 10。
- return_score (bool , optional) – 是否返回矢量距离。默认为 True。
- dialect (int , optional) – RediSearch 查询方言。默认为 2。
- Raises: TypeError – 如果 filter_expression 不属于 redisvl.query.FilterExpression
get_filter()
获取查询的筛选表达式。
- Returns: 查询的筛选。
- 类型: FilterExpression
set_distance_threshold(distance_threshold)
设置查询的距离阈值。
- 参数: distance_threshold (浮点数) – 向量距离
set_filter(filter_expression=None)
设置查询的筛选表达式。
- 参数: filter_expression (可选 [FilterExpression ] , optional) – 适用于查询的筛选。
- Raises: TypeError – 如果 filter_expression 不属于 redisvl.query.FilterExpression
set_paging(first, limit)
设置查询的分页参数以限制结果数量。
- 参数
- first (int) – 获取查询结果的零索引偏移量
- limit (int) – 包括偏移在内的最大结果数
- 引发: TypeError – 如果 first 或 limit 不是整数。
属性 distance_threshold :浮点数
返回查询的距离阈值。
- 返回值: 查询的距离阈值。
- 返回类型: 浮点数
property params : Dict[str, Any]
返回查询的参数。
- 返回:查询的参数。
- 类型: Dict[str, Any]
property query : Query
返回表示查询的 Redis-Py Query 对象。
- 返回:Redis-Py 查询对象。
- 类型: redis.commands.search.query.Query
FilterQuery
类 FilterQuery(filter_expression, return_fields=None, num_results=10, dialect=2, params=None)
用于运行带过滤表达式的过滤搜索的查询。
- 参数
- filter_expression (FilterExpression) – 要查询的过滤表达式。
- return_fields (可选 *[*列表 *[*字符串 ] ] , 可选) – 要返回的字段。
- num_results (可选 *[*整数 ] , 可选) – 要返回的结果数。默认值为 10。
- params (可选 *[*字典 *[*字符串 , 任何值 ] ] , 可选) – 查询的参数。默认值为无。
- dialect (整数) –
- Raises: TypeError – 如果 filter_expression 不属于 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()
获取查询的筛选表达式。
- Returns: 查询的筛选。
- 类型: FilterExpression
set_filter(filter_expression=None)
设置查询的筛选表达式。
- 参数: filter_expression (可选 [FilterExpression ] , optional) – 适用于查询的筛选。
- Raises: TypeError – 如果 filter_expression 不属于 redisvl.query.FilterExpression
set_paging(first, limit)
设置查询的分页参数以限制结果数量。
- 参数
- first (int) – 获取查询结果的零索引偏移量
- limit (int) – 包括偏移在内的最大结果数
- 引发: TypeError – 如果 first 或 limit 不是整数。
property query : Query
返回表示查询的 Redis-Py Query 对象。
- 返回:Redis-Py 查询对象。
- 类型: redis.commands.search.query.Query
CountQuery
类 CountQuery(filter_expression, dialect=2, params=None)
提供某种过滤表达式的简单计数操作的查询。
- 参数
- filter_expression (FilterExpression) – 要查询的过滤表达式。
- params (可选 *[*字典 *[*字符串 , 任何值 ] ] , 可选) – 查询的参数。默认值为无。
- dialect (整数) –
- Raises: TypeError – 如果 filter_expression 不属于 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()
获取查询的筛选表达式。
- Returns: 查询的筛选。
- 类型: FilterExpression
set_filter(filter_expression=None)
设置查询的筛选表达式。
- 参数: filter_expression (可选 [FilterExpression ] , optional) – 适用于查询的筛选。
- Raises: TypeError – 如果 filter_expression 不属于 redisvl.query.FilterExpression
set_paging(first, limit)
设置查询的分页参数以限制结果数量。
- 参数
- first (int) – 获取查询结果的零索引偏移量
- limit (int) – 包括偏移在内的最大结果数
- 引发: TypeError – 如果 first 或 limit 不是整数。
property params : Dict[str, Any]
查询的参数。
- 返回:查询的参数。
- 类型: Dict[str, Any]
property query : Query
已加载的 Redis-Py 查询。
- 返回:Redis-Py 查询对象。
- 类型: redis.commands.search.query.Query