Browse Source

Support create index for bf16 and f16 vector (#485)

* support create multiple vectors in create collection dialog

Signed-off-by: ryjiang <jiangruiyi@gmail.com>

* support create index for sparse vector

Signed-off-by: ryjiang <jiangruiyi@gmail.com>

* support create index for bf16 and f16 vector

Signed-off-by: ryjiang <jiangruiyi@gmail.com>

---------

Signed-off-by: ryjiang <jiangruiyi@gmail.com>
ryjiang 1 year ago
parent
commit
0f335cbf2b

+ 2 - 0
client/src/consts/Milvus.ts

@@ -326,6 +326,8 @@ export enum DataTypeStringEnum {
   JSON = 'JSON',
   BinaryVector = 'BinaryVector',
   FloatVector = 'FloatVector',
+  Float16Vector = 'Float16Vector',
+  BFloat16Vector = 'BFloat16Vector',
   SparseFloatVector = 'SparseFloatVector',
   Array = 'Array',
   None = 'None',

+ 8 - 0
client/src/pages/databases/collections/overview/Create.tsx

@@ -47,11 +47,14 @@ const CreateIndex = (props: {
   const { t: btnTrans } = useTranslation('btn');
   const { t: commonTrans } = useTranslation();
 
+  // https://milvus.io/docs/index.md#In-memory-Index
   const defaultIndexType = useMemo(() => {
     switch (fieldType) {
       case DataTypeStringEnum.BinaryVector:
         return INDEX_TYPES_ENUM.BIN_IVF_FLAT;
       case DataTypeStringEnum.FloatVector:
+      case DataTypeStringEnum.Float16Vector:
+      case DataTypeStringEnum.BFloat16Vector:
         return INDEX_TYPES_ENUM.AUTOINDEX;
       case DataTypeStringEnum.SparseFloatVector:
         return INDEX_TYPES_ENUM.SPARSE_WAND;
@@ -72,6 +75,9 @@ const CreateIndex = (props: {
       case DataTypeStringEnum.BinaryVector:
         return METRIC_TYPES_VALUES.HAMMING;
       case DataTypeStringEnum.FloatVector:
+      case DataTypeStringEnum.Float16Vector:
+      case DataTypeStringEnum.BFloat16Vector:
+        return METRIC_TYPES_VALUES.COSINE;
       case DataTypeStringEnum.SparseFloatVector:
         return METRIC_TYPES_VALUES.IP;
       default:
@@ -136,6 +142,8 @@ const CreateIndex = (props: {
       case DataTypeStringEnum.BinaryVector:
         return INDEX_OPTIONS_MAP[DataTypeEnum.BinaryVector];
       case DataTypeStringEnum.FloatVector:
+      case DataTypeStringEnum.Float16Vector:
+      case DataTypeStringEnum.BFloat16Vector:
         return INDEX_OPTIONS_MAP[DataTypeEnum.FloatVector];
       case DataTypeStringEnum.SparseFloatVector:
         return INDEX_OPTIONS_MAP[DataTypeEnum.SparseFloatVector];

+ 3 - 0
client/src/utils/Form.ts

@@ -59,6 +59,9 @@ export const getMetricOptions = (
 
   switch (fieldType) {
     case DataTypeEnum.FloatVector:
+    case DataTypeEnum.Float16Vector:
+    case DataTypeEnum.BFloat16Vector:
+      return baseFloatOptions;
     case DataTypeEnum.SparseFloatVector:
       return [
         {