milvus-io/milvus-sdk-node

[Bug]: failed to create query plan: field (id) to search is not of vector data type: invalid parameter

Closed this issue · 3 comments

Is there an existing issue for this?

  • I have searched the existing issues

Environment

- Milvus version: 2.4.11 and NodeJS SDK version 2.4.8
- Deployment mode(standalone or cluster): standalone
- MQ type(rocksmq, pulsar or kafka):    
- SDK version(e.g. pymilvus v2.0.0rc2):
- OS(Ubuntu or CentOS): Ubuntu 22.04
- CPU/Memory: Intel 20Core / 32GB
- GPU: 
- Others: NodeJS version 20

Current Behavior

I updated Milvus from Milvus 2.4.8 NodeJS SDK 2.4.4 => Milvus 2.4.11 NodeJS SDK 2.4.8.

  • On Milvus 2.4.8 with NodeJS SDK version 2.4.4 there is no error and my search works.
  • On Milvus 2.4.11 with NodeJS SDK version 2.4.8 the error happens when I search
  • On Milvus 2.4.11 with NodeJS SDK version 2.4.6 there is no error and my search works

So the problem seems to be with NodeJS SDK 2.4.8

"status": {
    "extra_info": {},
    "error_code": "IllegalArgument",
    "reason": "failed to create query plan: field (id) to search is not of vector data type: invalid parameter",
    "code": 1100,
    "retriable": false,
    "detail": "failed to create query plan: field (id) to search is not of vector data type: invalid parameter"
  }

My search query:

await client.search(
{
  "collection_name":"knowledgebase_attachment_1fe1a65e_69d4_4828_9bb8_febbbc66d5e6",
  "data":[...], // not included too long
  "filter":"tag == "a2884ebd0cd6474f97aa6356a9e2" && ARRAY_CONTAINS_ANY(channels, ["64c6842f6d3e5e8c815ec801dbbcc206","cd11590cd93955299f6f7fb9c9c70c37"])",
  "output_fields":["payload","ref_id","tag"],
  "limit":50
});

Schema:

{
    fields: [
                {
                    name: 'id',
                    data_type: DataType.VarChar,
                    is_primary_key: true,
                    max_length: 36
                },
                {
                    name: 'vector',
                    data_type: DataType.FloatVector,
                    dim: this.embeddingModel.dims
                },
                {
                    name: 'ref_id',
                    data_type: DataType.VarChar,
                    max_length: 36
                },
                {
                    name: 'fragments',
                    data_type: DataType.Int16
                },
                {
                    name: 'tag',
                    data_type: DataType.VarChar,
                    max_length: 36
                },
                {
                    name: 'channels',
                    data_type: DataType.Array,
                    element_type: DataType.VarChar,
                    max_capacity: 16,
                    max_length: 36
                },
                {
                    name: "payload",
                    data_type: DataType.JSON
                }
            ],
            partition_key_field: 'tag',
            index_params: [
                {
                    field_name: "vector",
                    index_type: "DISKANN",
                    metric_type: "IP"
                },
                {
                    field_name: "tag",
                    index_name: "tag_index",
                    index_type: "INVERTED"
                },
                {
                    field_name: "channels",
                    index_name: "channels_index",
                    index_type: "INVERTED"
                }
            ]
}

/assign @shanghaikid
sounds like a nodejs sdk issue.
/unassign

yes, it was introduced at v2.4.7. I will fix it soon, thank you.

the problem should be fixed in the v2.4.9, thanks.