Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Motivation

In Milvus 2.0rc1, operations like query do  does not support return vector field in output. Proxy will check If query request's output fields , if find their data types contain float vector or binary vector, proxy error proxy will error out.

This is for the consideration of memory consumption,because  because vector field with big dimension will occupy hundreds of times of memory comparing with scalar

field. So generally load_collection or load_partitionpartition only load scalar fields' raw data into memory. Vector fields' raw data is loaded into memory only in 3 cases:

  1. steaming streaming segment
  2. vector field's index type is FLAT
  3. vector field's index has not been created

If Only if vector's raw data has been loaded into memory, query has already supported to return vector field in output query can return vector field in output.

But query need this capability to return vector's raw data, for example tester can use this to check the correctness of inserted data.


Currently search also does not support return vector field in output, but we don't plan to enhance search in this project. If users need to get the vector data after

search returns ID, they can call query to get it.

If there is real requirement from users to let search return vector in output, we can achieve this in SDK level.

Design Details

  • Add new field VectorFieldInfo into segment struct to return vector field related information  

...