StructArray 概述
当一个 Entity 需要存储结构化元素的有序列表时,例如一篇文档包含多个 chunk、一个页面包含多个 visual patch,或一个视频包含多个 clip,可以使用 StructArray。StructArray 会将这些元素保留在父 Entity 内,同时仍支持对每个元素内部的字段进行 vector search 和 scalar filtering。
创建 StructArray Field
当一个 Entity 需要包含有序的结构化元素列表时,可以创建 StructArray Field。StructArray Field 是一种元素类型为 Struct 的 Array Field。每个 Struct 元素都遵循相同的 Schema,并且可以包含标量子字段、向量子字段,或同时包含两者。
向 StructArray 字段插入数据
当每个 Entity 包含一个有序的结构化元素列表时,可以向 StructArray 字段插入数据。在 insert payload 中,StructArray 字段表示为对象数组。每个对象表示一个 Struct 元素,并使用 Collection Schema 中定义的 Struct 子字段名称。
为 StructArray 字段创建 Index
在运行向量搜索或加速标量过滤之前,为 StructArray 子字段创建 Index。对于 StructArray 字段,Index 目标是子字段路径,例如 chunks[emb_list_vector]、chunks[emb] 或 chunks[section]。
StructArray 限制
StructArray 支持覆盖 Schema 定义、Insert payload、Index、Search 模式以及 StructArray 专用 Filter。在生产环境依赖 StructArray 行为之前,请将本页作为限制参考。