- Support client telemetry
- Support global cluster
- Support the Text datatype
- Support client-side roaring bitmap blobs for
roaring_match - Add function chains support for search
- Add an exception barrier so public SDK APIs never throw
- Align MilvusClientV2 load/describe/compaction/stats APIs with PyMilvus
- Align MilvusClientV2 RBAC/utility/index APIs with PyMilvus
- Match PyMilvus search iterator external filter and empty DML/get short-circuits
- Expose DML cost and validate search/hybrid_search parameters
- Speed up builds with unity builds and line-table debug info
- Add tutorials
- Preserve empty database names for serverless requests
- Avoid version conflicts with a system-installed protoc
- Optimize client telemetry
- Support query by integer or string primary-key IDs
- Support renaming collections across databases
- Support client-side bloom filter blobs for
bloom_match - Add the FMINDEX index type
- Refine collection schema and session timestamp caching for concurrent DML and DQL workloads
- Align AddFunctionField validation and bound-index parameter handling with PyMilvus
- Fix iterator pagination and session timestamp handling that could skip or return stale results
- Preserve the active connection when a reconnect attempt is rejected
- Refresh cached schemas when
allow_insert_auto_idchanges
- Support highlighting for search results
- Support DumpMessages(), AlterRole(), and UpdateUser() interfaces
- Support AddFunctionField(), DropCollectionField(), and DropFunctionField() interfaces
- Add MilvusClientV2Session
- Support aggregation for Search()
- Support MinHash functions
- Support CommitImport()/AbortImport() interfaces for bulk import
- Support ORDER BY for search and query
- Support search by primary-key IDs
- Support nullable vector fields
- Support field-level partial-update operations for upsert
- Align CreateRoleRequest/CreateUserRequest/SearchResponse/QueryResponse with other SDKs
- Route collection schema evolution through AlterCollectionSchema with compatibility fallback for older Milvus servers
- Avoid conflicts with a system-installed nlohmann/json library
- Support snapshot interfaces
- Support external collection and file resource interfaces
- Support struct field ANN search for BINARY_VECTOR/FLOAT16_VECTOR/BFLOAT16_VECTOR/INT8_VECTOR
- Support element-level search for Struct field
- Support AddCollectionStructField() interface
- Support GetReplicateInfo() interface
- Support FlushAll()/GetFlushAllState() interface
- Refine the struct field example to cover supported vector types and element-level search
- Align GetLoadState/LoadCollection/LoadPartitions with PyMilvus
- Support GetServerVersionV2() with build-time, git-commit, go-version, and deploy-mode detail
- Report operation cost in DmlResults and support L0 compaction for CompactRequest
- Support user description for UpdatePasswordRequest
- Add tutorials covering quickstart, collection, schema, index, DML, DQL, database, and RBAC
- Align MilvusClientV2 with pymilvus on cost, compact, rbac, and server version APIs
- Speed up builds with unity build and line-tables debug info
- Avoid conflicts with a system-installed protoc
- Reject empty index lists in CreateIndex
- Preserve empty database names for serverless requests
- Support query by integer or string primary-key IDs
- Support renaming collections across databases
- Refine collection schema and session timestamp caching for concurrent DML and DQL workloads
- Fix iterator pagination and session timestamp handling that could skip or return stale results
- Preserve the active connection when a reconnect attempt is rejected
- Support highlighting for search results
- Support DumpMessages(), AlterRole(), and UpdateUser() interfaces
- Support search by primary-key IDs
- Support nullable vector fields
- Support field-level partial-update operations for upsert
- Align CreateRoleRequest/CreateUserRequest/SearchResponse/QueryResponse with other SDKs
- Avoid conflicts with a system-installed nlohmann/json library
- Support GetReplicateInfo() interface
- Support FlushAll()/GetFlushAllState() interfaces
- Support GetReplicateConfiguration()/UpdateReplicateConfiguration() interfaces
- Align GetLoadState()/LoadCollection()/LoadPartitions() behavior with PyMilvus
- Support AddCollectionFunction(), AlterCollectionFunction(), and DropCollectionFunction() interfaces
- Support BatchDescribeCollections() and DescribeReplicas() interfaces
- Support RefreshLoad() and Optimize() interfaces
- Fix a bug in DropIndex()
- Use conan to manage dependencies
- Set grpc keepalive interval to 10s with 5s timeout
- Support TruncateCollection() interface
- Add AISAQ and RTREE index type
- Set limit to -1 for QueryIterator/SearchIterator so that they can iterate entire collection by default
- Fix a bug in ListIndexes() when listing indexes in an empty collection
- Add CreateSimpleCollectionRequest for quickly creating a simple collection
- Add Get() interface
- Compatible with zilliz cloud instance, support connecting with uri
- Support Multi-language Analyzers
- Support partial update
- Pass collection_name/description to CreateCollectionRequest instead of CollectionSchema
- Pass num_shards to CreateCollectionRequest instead of CollectionSchema
- DescribeIndex/DropIndex support both field_name and index_name
- Add multi-vector methods for SearchRequest/SubSearchRequest
- Refine the request classes to reduce duplicate source code
- SearchResult can return recalls if enable_recall_calculation is true for zilliz cloud instance
- Add a method AddTypeParam() for FieldSchema class
- AlterIndexProperties/DropIndexProperties cannot handle field_name, use index_name as input
- Fix a bug that CreateIndexRequest sync mode is not correctly work to wait index
- Fix a bug that SearchRequest.AddSparseVector() miss sparse vector when the size is unequal to the first vector
- Fix a bug that search response might treat collection name as primary key name
- Add CreateSimpleCollectionRequest for quickly creating a simple collection
- Add Get() interface
- Compatible with zilliz cloud instance, support connecting with uri
- Pass collection_name/description to CreateCollectionRequest instead of CollectionSchema
- Pass num_shards to CreateCollectionRequest instead of CollectionSchema
- DescribeIndex/DropIndex support both field_name and index_name
- Add multi-vector methods for SearchRequest/SubSearchRequest
- Refine the request classes to reduce duplicate source code
- SearchResult can return recalls if enable_recall_calculation is true for zilliz cloud instance
- AlterIndexProperties/DropIndexProperties cannot handle field_name, use index_name as input
- Fix a bug that CreateIndexRequest sync mode is not correctly work to wait index
- Fix a bug that SearchRequest.AddSparseVector() miss sparse vector when the size is unequal to the first vector
- Fix a bug that search response might treat collection name as primary key name
- Support Int8Vector field
- Support Struct field
- Support Geometry field
- Support Timestamptz field
- Support index types: HNSW_SQ/HNSW_PQ/HNSW_PRQ/IVF_RABITQ/MINHASH_LSH/NGRAM
- Support metric types: MHJACCARD/MAX_SIM_COSINE/MAX_SIM_IP/MAX_SIM_L2/MAX_SIM_JACCARD/MAX_SIM_HAMMING
- Support AddCollectionField()
- Support CreateCollection with indexes
- Support Rerank for SearchRequest
- Replace AddXXXVector(fieldName, vector) of SearchRequest/SubSearchRequest with WithFieldName() + AddXXXVector(vector)
- LoadCollection/LoadPartitions with timeout setting, for waiting loading progress
- CreateIndex with timeout setting, for waiting index progress
- Flush with timeout setting, for waiting flush action complete
- DescribeCollection outputs properties
- GetLoadState returns loading progress percent
- Change default value of enable_dynamic_schema from false to true
- Fix a bug that DescribeIndex() always returns all indexes no matter field_name is specified or not
- Support CreateCollection with indexes
- Replace AddXXXVector(fieldName, vector) of SearchRequest/SubSearchRequest with WithFieldName() + AddXXXVector(vector)
- LoadCollection/LoadPartitions with timeout setting, for waiting loading progress
- CreateIndex with timeout setting, for waiting index progress
- Flush with timeout setting, for waiting flush action complete
- DescribeCollection outputs properties
- GetLoadState returns loading progress percent
- Change default value of enable_dynamic_schema from false to true
- Fix a bug that DescribeIndex() always returns all indexes no matter field_name is specified or not
- Introduce MilvusClientV2 for clean/expandable interfaces
- Support RunAnalyzer()
- Support nullable field
- Support default value for field
- Support clustering key
- Support BM25 full text search
- Support text match
- Support BITMAP/HNSW_SQ/HNSW_PQ/HNSW_PRQ index types
- Support group_size and strict_group_size for Search() and HybridSearch()
- Support partition key
- Fix a bug that dynamic fields are missed for row-based insert/upsert
- Fix a bug that all dynamic fields are displayed for search/query even if the output_fields only contain some of them
- Fix a bug of dynamic field that describeCollection missed enable_dynamic
- Fix a bug for insert that incorrect range check of float values
- Allow to insert dynamic fields for column-based insert/upsert
- Change default value of shards_num to 1
- Add new index types(DISKANN/AUTOINDEX/SCANN/GPU_IVF_FLAT/GPU_IVF_PQ/GPU_BRUTE_FORCE/GPU_CAGRA/TRIE/STL_SORT/INVERTED/SPARSE_INVERTED_INDEX/SPARSE_WAND)
- Add new metric types(COSINE)
- Support CreateDatabase/DropDatabase/ListDatabases/AlterDatabase/DescribeDatabase/UsingDatabase interfaces
- Support JSON field
- Support Array field
- Support dynamic field
- Support SparseVector field
- Support Float16Vector/BFloat16Vector field
- Support Upsert interface
- Support Consistency level
- Support query by count(*)
- Support GetLoadState interface
- Support HybridSearch interface
- Support row-based insert/upsert
- Support DescribeAlias/ListAliases interfaces
- Support AlterCollection/AlterCollectionField interfaces
- Support AlterIndexProperties/DropIndexProperties interfaces
- Support CreateResourceGroup/DropResourceGroup/UpdateResourceGroups/ListResourceGroups/DescribeResourceGroup interfaces
- Support TransferNode/TransferReplica interfaces
- Support CreateUser/UpdatePassword/DropUser/DescribeUser/ListUsers interfaces
- Support CreateRole/DropRole/DescribeRole/ListRoles/GrantRole/RevokeRole interfaces
- Support GrantPrivilege/RevokePrivilege/CreatePrivilegeGroup/DropPrivilegeGroup/ListPrivilegeGroups/AddPrivilegesToGroup/RemovePrivilegesFromGroup interfaces
- Support QueryIterator/SearchIterator
- Support CreateImportJobs/ListImportJobs/GetImportJobProgress interfaces
- Support connection with dbname
- DropIndex() interface accepts index_name instead of field_name
- Cache collection schema to reduce DescribeCollection call
- Support search with grouping by field
- Add retry machinery for rpc call
- Add CurrentUsedDatabase method for MilvusClient
- Add methods for QueryResults/SearchResults to return row-based results
- Remove unsupported index types(IVF_HNSW/RHNSW_FLAT/RHNSW_SQ/RHNSW_PQ/ANNOY)
- Remove unsupported metric types(TANIMOTO/SUBSTRUCTURE/SUPERSTRUCTURE)
- Remove CalcDistance interface, not supported by milvus 2.4
- Remove Flush call in GetCollectionStats/GetPartitionStats/CreateIndex, milvus 2.4 doesn't allow calling Flush constantly
- Directly pass radius/range_filter for range search, no need to verify them on the client side
- CreateIndex() internally calls DescribeIndex() to check index state instead of GetIndexState()
- Remove client-side checks for index parameters and search parameters, let milvus server validate
- Deprecate ShowCollections, replaced by ListCollections
- Deprecate ShowPartitions, replaced by ListPartitions
- Rename GetVersion to GetServerVersion
- Link gRPC as shared library instead of static link
- Optional to build with external pre-installed gRPC lib
- Add more examples
- Simplify the project to reduce dependencies, only one dependency(gRPC) now