Milvus

One Entity, Many Vectors: Entity- and Element-Level Search with Milvus 3.0 StructArray

Aug 19, 2026Chenjie Tang
One Entity, Many Vectors: Entity- and Element-Level Search with Milvus 3.0 StructArray
SummaryAI, from the source post

This post details the addition of the StructArray feature to Milvus, enabling a native data model for entities containing ordered arrays of Struct elements. Each element can carry scalar metadata, vector embeddings, or both. The post explains the data model, schema design with PyMilvus, indexing strategies for different vector subfields (e.g., MAX_SIM_COSINE for EmbeddingList search, COSINE for element-level search), and the insert path. It highlights the difference between StructArray's same-element filtering (using MATCH_* family) and parallel arrays, ensuring correct correlation across scalar subfields within the same element. The post also covers how to define and index vector subfields separately for different search modes and the API boundary where StructArray remains an array of structured objects.

More from the StructArray for Entity- and Element-Level Search trail