VSIM
VSIM key (ELE | FP32 | VALUES num) (vector | element) [WITHSCORES] [COUNT num] [EF search-exploration-factor] [FILTER expression] [FILTER-EF max-filtering-effort] [TRUTH] [NOTHREAD]
- 可用版本
- Redis Open Source 8.0.0
- 时间复杂度
- O(log(N)),其中 N 是 vector set 中的元素数量。
返回与给定向量或元素相似的元素。使用此命令可在 vector set 中执行近似或精确相似性搜索。
你可以使用向量(通过 FP32
或 VALUES num
)或引用另一个元素(使用 ELE
)进行查询。可选参数允许你控制搜索行为,例如分数输出、结果数量和过滤选项。
VSIM word_embeddings ELE apple
1) "apple"
2) "apples"
3) "pear"
4) "fruit"
5) "berry"
6) "pears"
7) "strawberry"
8) "peach"
9) "potato"
10) "grape"
你可以包含相似性分数并限制结果数量
VSIM word_embeddings ELE apple WITHSCORES COUNT 3
1) "apple"
2) "0.9998867657923256"
3) "apples"
4) "0.8598527610301971"
5) "pear"
6) "0.8226882219314575"
设置 EF
(探索因子)以提高召回率,代价是牺牲性能。使用 TRUTH
选项执行精确的线性扫描,这对于基准测试很有用。NOTHREAD
选项在主线程中运行搜索,可能会增加服务器延迟。
必需参数
key
是保存 vector set 数据的 key 的名称。
ELE | FP32 | VALUES num
指定输入向量的提供方式。使用 ELE
引用现有元素,使用 FP32
表示二进制浮点格式,使用 VALUES num
表示浮点值字符串列表。
vector or element
是用作相似性参考的向量数据(对于 FP32
或 VALUES
)或元素的名称(对于 ELE
)。
可选参数
WITHSCORES
返回每个结果及其相似性分数(从 1 到 0)。分数 1 表示完全相同;分数 0 表示完全相反。
COUNT num
将返回结果的数量限制为 num
。
EF search-exploration-factor
控制搜索工作量。值越高,探索的节点越多,提高召回率,但会牺牲速度。典型值范围从 50 到 1000。
FILTER expression
应用过滤表达式来限制匹配的元素。请参阅过滤搜索部分了解语法详情。
FILTER-EF max-filtering-effort
限制对 FILTER
表达式的过滤尝试次数。请参阅过滤搜索部分了解更多信息。
TRUTH
强制对所有元素进行精确线性扫描,绕过 HNSW 图。用于基准测试或计算召回率。这会显著变慢 (O(N))。
NOTHREAD
在主线程而非后台线程中执行搜索。适用于小型 vector set 或基准测试。执行期间可能会阻塞服务器。
相关主题
RESP2 回复
以下之一
RESP3 回复
以下之一