Milvus.tsx 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. export enum METRIC_TYPES_VALUES {
  2. L2 = 'L2',
  3. IP = 'IP',
  4. HAMMING = 'HAMMING',
  5. JACCARD = 'JACCARD',
  6. TANIMOTO = 'TANIMOTO',
  7. SUBSTRUCTURE = 'SUBSTRUCTURE',
  8. SUPERSTRUCTURE = 'SUPERSTRUCTURE',
  9. }
  10. export const METRIC_TYPES = [
  11. {
  12. value: METRIC_TYPES_VALUES.L2,
  13. label: 'L2',
  14. },
  15. {
  16. value: METRIC_TYPES_VALUES.IP,
  17. label: 'IP',
  18. },
  19. {
  20. value: METRIC_TYPES_VALUES.SUBSTRUCTURE,
  21. label: 'SUBSTRUCTURE',
  22. },
  23. {
  24. value: METRIC_TYPES_VALUES.SUPERSTRUCTURE,
  25. label: 'SUPERSTRUCTURE',
  26. },
  27. {
  28. value: METRIC_TYPES_VALUES.HAMMING,
  29. label: 'HAMMING',
  30. },
  31. {
  32. value: METRIC_TYPES_VALUES.JACCARD,
  33. label: 'JACCARD',
  34. },
  35. {
  36. value: METRIC_TYPES_VALUES.TANIMOTO,
  37. label: 'TANIMOTO',
  38. },
  39. ];
  40. export type MetricType =
  41. | 'L2'
  42. | 'IP'
  43. | 'HAMMING'
  44. | 'SUBSTRUCTURE'
  45. | 'SUPERSTRUCTURE'
  46. | 'JACCARD'
  47. | 'TANIMOTO';
  48. export type searchKeywordsType = 'nprobe' | 'ef' | 'search_k' | 'search_length';
  49. // index
  50. export const INDEX_CONFIG: {
  51. [x: string]: {
  52. create: string[];
  53. search: searchKeywordsType[];
  54. };
  55. } = {
  56. IVF_FLAT: {
  57. create: ['nlist'],
  58. search: ['nprobe'],
  59. },
  60. IVF_PQ: {
  61. create: ['nlist', 'm'],
  62. search: ['nprobe'],
  63. },
  64. // IVF_SQ8: {
  65. // create: ['nlist'],
  66. // search: ['nprobe'],
  67. // },
  68. // IVF_SQ8_HYBRID: {
  69. // create: ['nlist'],
  70. // search: ['nprobe'],
  71. // },
  72. FLAT: {
  73. create: ['nlist'],
  74. search: ['nprobe'],
  75. },
  76. HNSW: {
  77. create: ['M', 'efConstruction'],
  78. search: ['ef'],
  79. },
  80. ANNOY: {
  81. create: ['n_trees'],
  82. search: ['search_k'],
  83. },
  84. // RNSG: {
  85. // create: ['out_degree', 'candidate_pool_size', 'search_length', 'knng'],
  86. // search: ['search_length'],
  87. // },
  88. BIN_FLAT: {
  89. create: ['nlist'],
  90. search: ['nprobe'],
  91. },
  92. BIN_IVF_FLAT: {
  93. create: ['nlist'],
  94. search: ['nprobe'],
  95. },
  96. };
  97. export const COLLECTION_NAME_REGX = /^[0-9,a-z,A-Z$_]+$/;
  98. export const m_OPTIONS = [
  99. { label: '64', value: 64 },
  100. { label: '32', value: 32 },
  101. { label: '16', value: 16 },
  102. { label: '8', value: 8 },
  103. { label: '4', value: 4 },
  104. ];
  105. export const INDEX_OPTIONS_MAP = {
  106. // not all
  107. // FLOAT_POINT: Object.keys(INDEX_CONFIG).map(v => ({ label: v, value: v })),
  108. FLOAT_POINT: ['IVF_FLAT', 'IVF_PQ', 'FLAT', 'HNSW', 'ANNOY',].map(v => ({ label: v, value: v })),
  109. BINARY: ['BIN_IVF_FLAT', 'BIN_FLAT'].map(v => ({ label: v, value: v })),
  110. };
  111. export const PRIMARY_KEY_FIELD = 'INT64 (Primary key)';
  112. export enum EmbeddingTypeEnum {
  113. float = 'FLOAT_POINT',
  114. binary = 'BINARY',
  115. }