如何读取 EXPLAIN 执行计划和 PROFILE 输出?
上次更新时间 2024 年 3 月 22 日
问题
如何读取 EXPLAIN 执行计划和 PROFILE 输出?
解答
让我们考虑以下一个混合矢量相似性搜索查询的说明计划,该查询还执行全文搜索和标签搜索。
FT.EXPLAIN doc_idx (@content:(carbonara) @genre:{technical})=>[KNN 2 @embedding $vec AS score]
RETURN 1 score
DIALECT 2
LIMIT 0 10
params 2 vec \x0e\xaf\xae<\xac\x92\x96< [...]
这是 FT.EXPLAIN
命令产生的输出
VECTOR {
INTERSECT {
@content:carbonara
TAG:@genre {
technical
}
}
} => {K=2 nearest vectors to `$vec` in vector index associated with field @embedding, yields distance as `score`}
内部部分(本例中为 INTERSECT
)是一个预筛选器,并返回感应子空间中的 KNN 结果。这适用于 FLAT
和 HNSW
索引方法。
相反,同一个查询的 FT.PROFILE
命令将返回以下输出。
(Result{0 total, docs: []}, {'Total profile time': 1.0, 'Parsing time': 1.0, 'Pipeline creation time': 0.0, 'Iterators profile': {'Type': 'VECTOR', 'Time': 0.0, 'Counter': 0.0, 'Child iterators': [{'Type': 'INTERSECT', 'Time': 0.0, 'Counter': 0.0, 'Child iterators': [{'Type': 'TEXT', 'Term': 'carbonara', 'Time': 0.0, 'Counter': 4.0, 'Size': 4.0}, {'Type': 'TAG', 'Term': 'technical', 'Time': 0.0, 'Counter': 3.0, 'Size': 4.0}]}]}, 'Result processors profile': {'Type': 'Index', 'Time': 0.0, 'Counter': 0.0}})
参考
了解有关 FT.EXPLAIN 和 FT.INFO 命令的详细信息。