Skip to content

Releases: milvus-io/milvus-sdk-node

Release v2.6.0

15 Jul 06:30
957054d
Compare
Choose a tag to compare

Milvus Node.js SDK v2.6.0 Release Notes

Release Date: July 15, 2025

Overview

The Milvus Node.js SDK v2.6.0 officially supports all new features in Milvus 2.6.0, including enhanced JSON handling, text embedding functions, schema evolution, and new vector types.

Compatibility

  • Milvus Version: 2.6.0
  • Node.js Version: 14.x or later

New Features

🚀 JSON Path Index Support

  • Create inverted indexes on specific JSON paths (e.g., meta.user.location)
  • Accelerate filtering on nested JSON fields without full document scans
await milvusClient.createIndex({
      index_name: 'json',
      collection_name: COLLECTION_NAME,
      field_name: 'json',
      index_type: IndexType.INVERTED,
      params: {
        json_path: `json[\"static\"][\"string_key\"]`,
        json_cast_type: 'varchar',
      },
    });

🎯 INT8 Vector Support

  • Native support for 8-bit integer vectors
  • Direct ingestion of quantized embeddings (no de-quantization needed)
  • Reduces storage and improves performance

✨ Text Embedding Functions

  • Automatic text-to-vector conversion
  • Integration with OpenAI, AWS Bedrock, Google Vertex AI, and Hugging Face
  • "Data-in, data-out" simplicity for AI applications
const params = {
  collection_name: "my-collection",
  fields: [
    {
      name: "text",
      description: "text field",
      data_type: DataType.VarChar,
      max_length: 20,
      is_partition_key: false,
      enable_analyzer: true,
    },
    {
      name: "dense",
      description: "dense field",
      dim: 1536,
      data_type: DataType.FloatVector,
      is_function_output: true,
    },
  ],
  functions: [
    {
      name: "openai",
      description: "openai text embedding function",
      type: FunctionType.TEXTEMBEDDING,
      input_field_names: ["text"],
      output_field_names: ["dense"],
      params: {
       "provider": "openai",                 // Embedding model provider
        "model_name": "text-embedding-3-small",     // Embedding model
        // "credential": "apikey1",            // Optional: Credential label
        // Optional parameters:
        // "dim": "1536",       // Optionally shorten the vector dimension
       //  "user": "user123"    // Optional: identifier for API tracking
      },
    },
  ],
};

await client.createCollection(params);

🔄 Schema Evolution

  • Add new scalar/vector fields to existing collections
  • New addCollectionFields method
await milvusClient.addCollectionField({
  collection_name: COLLECTION_NAME,
  field: {
    name: 'new_varChar',
    description: 'new VarChar field',
    data_type: DataType.VarChar,
    max_length: 128,
    is_partition_key: false,
    nullable: true, // required to be set true
    default_value: 'default',
  }
});


await milvusClient.addCollectionFields({
  collection_name: COLLECTION_NAME,
  fields: fieldsToAdd, // array of fields
});

📝 Analyzer/Tokenizer Enhancements

  • runAnalyzer method for tokenizer validation
  • Row-level tokenizer selection
  • Improved multilingual text processing
const runAnalyzer = await milvusClient.runAnalyzer({
  analyzer_params: {
    tokenizer: 'standard',
    filter: ['lowercase'],
  },
  text: 'Would you like to eat an apple?',
  with_detail: true,
  with_hash: true,
});

Improvements

  • Proto-json support for better protocol buffer handling
  • Downgraded @grpc/grpc-js to 1.7.3 for stability
  • Internal optimizations and bug fixes

Upgrade Instructions

⚠️ Requires Milvus 2.6.0 server

npm install @milvus-io/[email protected]

Release v2.5.12

07 Jul 06:06
7eb5d36
Compare
Choose a tag to compare

What's Changed

Full Changelog: v2.5.11...v2.5.12

release v2.6.0-rc2

29 Jun 11:59
f3acd97
Compare
Choose a tag to compare
release v2.6.0-rc2 Pre-release
Pre-release

What's Changed

Full Changelog: v2.6.0-rc1...v2.6.0-rc2

v2.6.0-rc1

16 Jun 02:45
d8abec1
Compare
Choose a tag to compare
v2.6.0-rc1 Pre-release
Pre-release

What's Changed

Full Changelog: v2.5.7...v2.6.0-rc1

Release v2.5.11

12 Jun 02:17
7083ec5
Compare
Choose a tag to compare

What's Changed

Versions >= 1.8.0 of @grpc/grpc-js trigger intermittent INTERNAL: Received RST_STREAM with code 0 errors when retry logic is enabled and Envoy (e.g., Istio sidecar) is in the path. This was reported in grpc/grpc-node#2569, where large concurrent calls routed through Envoy consistently resulted in RST_STREAM resets and failed retries.

Until the upstream issue is resolved, we are locking the version at 1.7.3, the last known stable release for our use case.

Full Changelog: v2.5.10...v2.5.11

Replease v2.5.10

05 Jun 06:43
cc6c410
Compare
Choose a tag to compare

What's Changed

Full Changelog: v2.5.9...v2.5.10

Release v2.5.9

19 May 09:25
29bc8a5
Compare
Choose a tag to compare
  • Use JSON proto instead of proto files (No more proto files)
    Introduced proto-json functionality that eliminates proto file dependency (#437)
    → Solves import failures in serverless platforms like Vercel and Cloudflare or AWS lambda
    → No more need to manage proto files manually
    issues: (#326 #276)

  • Milvus Lite 2.5 RC Support
    Now compatible with Milvus Lite version 2.5 (#434)
    → only supprt 2.5 RC1 https://pypi.org/project/milvus-lite/2.5.0rc1/

Example:

import { MilvusLiteClient } from '@zilliz/milvus2-sdk-node';
const milvusClient = await MilvusLiteClient({
  address: path.resolve(__dirname, 'test.db')
});
// create
await milvusClient.createCollection({
  collection_name: COLLECTION_NAME,
  fields: schema,
});
// describe
await milvusClient.describeCollection({
  collection_name: COLLECTION_NAME,
});
// create index
await milvusClient.createIndex({
  collection_name: COLLECTION_NAME,
  field_name: 'vector',
  extra_params: {
    index_type: 'IVF_FLAT',
    metric_type: 'L2',
    params: JSON.stringify({ nlist: 1024 }),
  },
});
// load
await milvusClient.loadCollection({
  collection_name: COLLECTION_NAME,
});
// insert
await milvusClient.insert({
  collection_name: COLLECTION_NAME,
  data,
});
// query
await milvusClient.query({
  collection_name: COLLECTION_NAME,
  expr: `id > 0`,
});
// search
await milvusClient.search({
  collection_name: COLLECTION_NAME,
  data: [1, 2, 3, 4],
});
  • Schema Flexibility
    Added option to ignore schema check during insertion and use string key for validation (#438)
    if you have trouble to insert data on AWS lambda, you can skip check schema like below or upgrade your milvus to v2.5.12
await milvusClient.insert({
  collection_name: 'my-collection',
  skip_check_schema: true
});
  • Grpc API Enhancement
    • Added support for specifying partition type (load/all) in showPartitions API (#431)
    • New runAnalyzer API
      const runAnalyzer = await milvusClient.runAnalyzer({
        analyzer_params: {
          tokenizer: 'standard',
          filter: ['lowercase'],
        },
        text: 'Would you like to eat an apple?',
        with_detail: true,
        with_hash: true,
      });
  • REST API Enhancement
    Added consistency level support for RESTful query API (#440)

Full Changelog

For complete details, see:
v2.5.8...v2.5.9

release v2.5.8

18 Apr 09:05
0ab0d57
Compare
Choose a tag to compare

What's Changed

  • fix: Search output on multiple vector search returning values of the first record by @shanghaikid in #429
  • feat: split search results if nq >2 for HttpClient by @shanghaikid in #430

Full Changelog: v2.5.7...v2.5.8

Release v2.5.7

25 Mar 09:12
5594f70
Compare
Choose a tag to compare

What's Changed

  • fix: the search result is formatted incorrectly if nq > 1 with some filters by @zhanshuyou in #420

Full Changelog: v2.5.6...v2.5.7

Release v2.5.6

17 Mar 03:02
bb8dabf
Compare
Choose a tag to compare

What's Changed

Full Changelog: v2.5.5...v2.5.6