mirror of
https://gitee.com/milvus-io/milvus.git
synced 2025-12-06 17:18:35 +08:00
Related to #42148 Add comprehensive support for struct array field type in the Go SDK, including data structure definitions, column operations, schema construction, and full test coverage. **Struct Array Column Implementation (`client/column/struct.go`)** - Add `columnStructArray` type to handle struct array fields - Implement `Column` interface methods: - `NewColumnStructArray()`: Create new struct array column from sub-fields - `Name()`, `Type()`: Basic metadata accessors - `Slice()`: Support slicing across all sub-fields - `FieldData()`: Convert to protobuf `StructArrayField` format - `Get()`: Retrieve struct values as `map[string]any` - `ValidateNullable()`, `CompactNullableValues()`: Nullable support - Placeholder implementations for unsupported operations (AppendValue, GetAsX, IsNull, AppendNull) **Struct Array Parsing (`client/column/columns.go`)** - Add `parseStructArrayData()` function to parse `StructArrayField` from protobuf - Update `FieldDataColumn()` to detect and parse struct array fields - Support range-based slicing for struct array data --------- Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
Go MilvusClient
Go MilvusClient for Milvus. To contribute code to this project, please read our contribution guidelines first.
Getting started
Prerequisites
Go 1.24.6 or higher
Install Milvus Go SDK
-
Use
go getto install the latest version of the Milvus Go SDK and dependencies:go get -u github.com/milvus-io/milvus/client/v2 -
Include the Go MilvusClient in your application:
import "github.com/milvus-io/milvus/client/v2/milvusclient" //...other snippet ... ctx, cancel := context.WithCancel(context.Background()) defer cancel() milvusAddr := "YOUR_MILVUS_ENDPOINT" cli, err := milvusclient.New(ctx, &milvusclient.ClientConfig{ Address: milvusAddr, }) if err != nil { // handle error } // Do your work with milvus client
API Documentation
Refer to https://milvus.io/api-reference/go/v2.5.x/About.md for the Go SDK API documentation.
Code format
The Go source code is formatted using gci & gofumpt. Please run make lint-fix before sumbit a PR.