@zilliz/milvus2-sdk-node 2.3.5 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/README.md +154 -35
  2. package/dist/milvus/HttpClient.d.ts +165 -2
  3. package/dist/milvus/HttpClient.js +17 -3
  4. package/dist/milvus/HttpClient.js.map +1 -1
  5. package/dist/milvus/MilvusClient.d.ts +3 -3
  6. package/dist/milvus/MilvusClient.js +42 -8
  7. package/dist/milvus/MilvusClient.js.map +1 -1
  8. package/dist/milvus/const/client.d.ts +4 -3
  9. package/dist/milvus/const/client.js +4 -3
  10. package/dist/milvus/const/client.js.map +1 -1
  11. package/dist/milvus/const/defaults.d.ts +5 -4
  12. package/dist/milvus/const/defaults.js +14 -13
  13. package/dist/milvus/const/defaults.js.map +1 -1
  14. package/dist/milvus/const/error.js +1 -1
  15. package/dist/milvus/const/error.js.map +1 -1
  16. package/dist/milvus/const/milvus.d.ts +47 -8
  17. package/dist/milvus/const/milvus.js +42 -3
  18. package/dist/milvus/const/milvus.js.map +1 -1
  19. package/dist/milvus/grpc/BaseClient.d.ts +11 -9
  20. package/dist/milvus/grpc/BaseClient.js +59 -21
  21. package/dist/milvus/grpc/BaseClient.js.map +1 -1
  22. package/dist/milvus/grpc/Collection.d.ts +311 -366
  23. package/dist/milvus/grpc/Collection.js +355 -387
  24. package/dist/milvus/grpc/Collection.js.map +1 -1
  25. package/dist/milvus/grpc/Data.d.ts +244 -291
  26. package/dist/milvus/grpc/Data.js +402 -539
  27. package/dist/milvus/grpc/Data.js.map +1 -1
  28. package/dist/milvus/grpc/Database.d.ts +29 -41
  29. package/dist/milvus/grpc/Database.js +32 -44
  30. package/dist/milvus/grpc/Database.js.map +1 -1
  31. package/dist/milvus/grpc/GrpcClient.d.ts +34 -13
  32. package/dist/milvus/grpc/GrpcClient.js +80 -70
  33. package/dist/milvus/grpc/GrpcClient.js.map +1 -1
  34. package/dist/milvus/grpc/MilvusIndex.d.ts +127 -67
  35. package/dist/milvus/grpc/MilvusIndex.js +166 -70
  36. package/dist/milvus/grpc/MilvusIndex.js.map +1 -1
  37. package/dist/milvus/grpc/Partition.d.ts +78 -113
  38. package/dist/milvus/grpc/Partition.js +109 -119
  39. package/dist/milvus/grpc/Partition.js.map +1 -1
  40. package/dist/milvus/grpc/Resource.d.ts +63 -92
  41. package/dist/milvus/grpc/Resource.js +69 -98
  42. package/dist/milvus/grpc/Resource.js.map +1 -1
  43. package/dist/milvus/grpc/User.d.ts +263 -295
  44. package/dist/milvus/grpc/User.js +287 -310
  45. package/dist/milvus/grpc/User.js.map +1 -1
  46. package/dist/milvus/http/Alias.d.ts +37 -0
  47. package/dist/milvus/http/Alias.js +62 -0
  48. package/dist/milvus/http/Alias.js.map +1 -0
  49. package/dist/milvus/http/Collection.d.ts +15 -1
  50. package/dist/milvus/http/Collection.js +55 -9
  51. package/dist/milvus/http/Collection.js.map +1 -1
  52. package/dist/milvus/http/Import.d.ts +33 -0
  53. package/dist/milvus/http/Import.js +48 -0
  54. package/dist/milvus/http/Import.js.map +1 -0
  55. package/dist/milvus/http/MilvusIndex.d.ts +35 -0
  56. package/dist/milvus/http/MilvusIndex.js +55 -0
  57. package/dist/milvus/http/MilvusIndex.js.map +1 -0
  58. package/dist/milvus/http/Partition.d.ts +41 -0
  59. package/dist/milvus/http/Partition.js +76 -0
  60. package/dist/milvus/http/Partition.js.map +1 -0
  61. package/dist/milvus/http/Role.d.ts +39 -0
  62. package/dist/milvus/http/Role.js +69 -0
  63. package/dist/milvus/http/Role.js.map +1 -0
  64. package/dist/milvus/http/User.d.ts +41 -0
  65. package/dist/milvus/http/User.js +76 -0
  66. package/dist/milvus/http/User.js.map +1 -0
  67. package/dist/milvus/http/Vector.d.ts +5 -3
  68. package/dist/milvus/http/Vector.js +10 -7
  69. package/dist/milvus/http/Vector.js.map +1 -1
  70. package/dist/milvus/http/index.d.ts +6 -0
  71. package/dist/milvus/http/index.js +6 -0
  72. package/dist/milvus/http/index.js.map +1 -1
  73. package/dist/milvus/index.d.ts +0 -1
  74. package/dist/milvus/index.js +0 -1
  75. package/dist/milvus/index.js.map +1 -1
  76. package/dist/milvus/types/Client.d.ts +5 -0
  77. package/dist/milvus/types/Collection.d.ts +34 -9
  78. package/dist/milvus/types/Common.d.ts +1 -3
  79. package/dist/milvus/types/Data.d.ts +79 -23
  80. package/dist/milvus/types/Data.js +1 -0
  81. package/dist/milvus/types/Data.js.map +1 -1
  82. package/dist/milvus/types/HighLevel.d.ts +6 -3
  83. package/dist/milvus/types/Http.d.ts +191 -9
  84. package/dist/milvus/types/MilvusIndex.d.ts +17 -3
  85. package/dist/milvus/utils/Bytes.d.ts +84 -0
  86. package/dist/milvus/utils/Bytes.js +261 -0
  87. package/dist/milvus/utils/Bytes.js.map +1 -0
  88. package/dist/milvus/utils/Format.d.ts +126 -68
  89. package/dist/milvus/utils/Format.js +375 -94
  90. package/dist/milvus/utils/Format.js.map +1 -1
  91. package/dist/milvus/utils/Function.d.ts +4 -2
  92. package/dist/milvus/utils/Function.js +58 -25
  93. package/dist/milvus/utils/Function.js.map +1 -1
  94. package/dist/milvus/utils/Grpc.d.ts +3 -2
  95. package/dist/milvus/utils/Grpc.js +65 -98
  96. package/dist/milvus/utils/Grpc.js.map +1 -1
  97. package/dist/milvus/utils/Validate.d.ts +18 -3
  98. package/dist/milvus/utils/Validate.js +38 -12
  99. package/dist/milvus/utils/Validate.js.map +1 -1
  100. package/dist/milvus/utils/index.d.ts +1 -1
  101. package/dist/milvus/utils/index.js +1 -1
  102. package/dist/milvus/utils/index.js.map +1 -1
  103. package/dist/proto/proto/common.proto +26 -1
  104. package/dist/proto/proto/google/protobuf/descriptor.proto +90 -28
  105. package/dist/proto/proto/milvus.proto +168 -2
  106. package/dist/proto/proto/rg.proto +28 -0
  107. package/dist/proto/proto/schema.proto +34 -0
  108. package/dist/sdk.json +1 -1
  109. package/package.json +8 -5
  110. package/dist/milvus/OrmClient.d.ts +0 -19
  111. package/dist/milvus/OrmClient.js +0 -51
  112. package/dist/milvus/OrmClient.js.map +0 -1
  113. package/dist/milvus/orm/Collection.d.ts +0 -43
  114. package/dist/milvus/orm/Collection.js +0 -165
  115. package/dist/milvus/orm/Collection.js.map +0 -1
  116. package/dist/milvus/orm/index.d.ts +0 -1
  117. package/dist/milvus/orm/index.js +0 -18
  118. package/dist/milvus/orm/index.js.map +0 -1
  119. package/dist/milvus/utils/Blob.d.ts +0 -4
  120. package/dist/milvus/utils/Blob.js +0 -18
  121. package/dist/milvus/utils/Blob.js.map +0 -1
@@ -0,0 +1,261 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildPlaceholderGroupBytes = exports.bytesToSparseRow = exports.sparseRowsToBytes = exports.sparseToBytes = exports.getSparseFloatVectorType = exports.bf16BytesToF32Array = exports.f32ArrayToBf16Bytes = exports.f16BytesToF32Array = exports.f32ArrayToF16Bytes = exports.f32ArrayToBinaryBytes = exports.f32ArrayToF32Bytes = void 0;
4
+ const float16_1 = require("@petamoriken/float16");
5
+ const __1 = require("..");
6
+ /**
7
+ * Converts a float vector into bytes format.
8
+ *
9
+ * @param {FloatVector} array - The float vector to convert.
10
+ * @returns {Buffer} Bytes representing the float vector.
11
+ */
12
+ const f32ArrayToF32Bytes = (array) => {
13
+ // create array buffer
14
+ const a = new Float32Array(array);
15
+ // need return bytes to milvus proto
16
+ return Buffer.from(a.buffer);
17
+ };
18
+ exports.f32ArrayToF32Bytes = f32ArrayToF32Bytes;
19
+ /**
20
+ * Converts a binary vector into bytes format.
21
+ *
22
+ * @param {BinaryVector} array - The binary vector to convert.
23
+ * @returns {Buffer} Bytes representing the binary vector.
24
+ */
25
+ const f32ArrayToBinaryBytes = (array) => {
26
+ const a = new Uint8Array(array);
27
+ // need return bytes to milvus proto
28
+ return Buffer.from(a.buffer);
29
+ };
30
+ exports.f32ArrayToBinaryBytes = f32ArrayToBinaryBytes;
31
+ /**
32
+ * Converts a float16 vector into bytes format.
33
+ *
34
+ * @param {Float16Vector} array - The float16 vector(f32 format) to convert.
35
+ * @returns {Buffer} Bytes representing the float16 vector.
36
+ */
37
+ const f32ArrayToF16Bytes = (array) => {
38
+ const float16Bytes = new float16_1.Float16Array(array);
39
+ return Buffer.from(float16Bytes.buffer);
40
+ };
41
+ exports.f32ArrayToF16Bytes = f32ArrayToF16Bytes;
42
+ /**
43
+ * Convert float16 bytes to float32 array.
44
+ * @param {Uint8Array} f16Bytes - The float16 bytes to convert.
45
+ * @returns {Array} The float32 array.
46
+ */
47
+ const f16BytesToF32Array = (f16Bytes) => {
48
+ const buffer = new ArrayBuffer(f16Bytes.length);
49
+ const view = new Uint8Array(buffer);
50
+ view.set(f16Bytes);
51
+ const f16Array = new float16_1.Float16Array(buffer);
52
+ return Array.from(f16Array);
53
+ };
54
+ exports.f16BytesToF32Array = f16BytesToF32Array;
55
+ /**
56
+ * Convert float32 array to BFloat16 bytes, not a real conversion, just take the last 2 bytes of float32.
57
+ * @param {BFloat16Vector} array - The float32 array to convert.
58
+ * @returns {Buffer} The BFloat16 bytes.
59
+ */
60
+ const f32ArrayToBf16Bytes = (array) => {
61
+ const totalBytesNeeded = array.length * 2; // 2 bytes per float32
62
+ const buffer = new ArrayBuffer(totalBytesNeeded);
63
+ const bfloatView = new Uint8Array(buffer);
64
+ let byteIndex = 0;
65
+ array.forEach(float32 => {
66
+ const floatBuffer = new ArrayBuffer(4);
67
+ const floatView = new Float32Array(floatBuffer);
68
+ const bfloatViewSingle = new Uint8Array(floatBuffer);
69
+ floatView[0] = float32;
70
+ bfloatView.set(bfloatViewSingle.subarray(2, 4), byteIndex);
71
+ byteIndex += 2;
72
+ });
73
+ return Buffer.from(bfloatView);
74
+ };
75
+ exports.f32ArrayToBf16Bytes = f32ArrayToBf16Bytes;
76
+ /**
77
+ * Convert BFloat16 bytes to Float32 array.
78
+ * @param {Uint8Array} bf16Bytes - The BFloat16 bytes to convert.
79
+ * @returns {Array} The Float32 array.
80
+ */
81
+ const bf16BytesToF32Array = (bf16Bytes) => {
82
+ const float32Array = [];
83
+ const totalFloats = bf16Bytes.length / 2;
84
+ for (let i = 0; i < totalFloats; i++) {
85
+ const floatBuffer = new ArrayBuffer(4);
86
+ const floatView = new Float32Array(floatBuffer);
87
+ const bfloatView = new Uint8Array(floatBuffer);
88
+ bfloatView.set(bf16Bytes.subarray(i * 2, i * 2 + 2), 2);
89
+ float32Array.push(floatView[0]);
90
+ }
91
+ return float32Array;
92
+ };
93
+ exports.bf16BytesToF32Array = bf16BytesToF32Array;
94
+ /**
95
+ * Get SparseVector type.
96
+ * @param {SparseFloatVector} vector - The sparse float vector to convert.
97
+ *
98
+ * @returns string, 'array' | 'coo' | 'csr' | 'dict'
99
+ */
100
+ const getSparseFloatVectorType = (vector) => {
101
+ if (Array.isArray(vector)) {
102
+ if (vector.length === 0) {
103
+ return 'array';
104
+ }
105
+ if (typeof vector[0] === 'number' || typeof vector[0] === 'undefined') {
106
+ return 'array';
107
+ }
108
+ else if (vector.every(item => typeof item === 'object' && 'index' in item && 'value' in item)) {
109
+ return 'coo';
110
+ }
111
+ else {
112
+ return 'unknown';
113
+ }
114
+ }
115
+ else if (typeof vector === 'object' &&
116
+ 'indices' in vector &&
117
+ 'values' in vector) {
118
+ return 'csr';
119
+ }
120
+ else if (typeof vector === 'object' &&
121
+ Object.keys(vector).every(key => typeof vector[key] === 'number')) {
122
+ return 'dict';
123
+ }
124
+ else {
125
+ return 'unknown';
126
+ }
127
+ };
128
+ exports.getSparseFloatVectorType = getSparseFloatVectorType;
129
+ /**
130
+ * Converts a sparse float vector into bytes format.
131
+ *
132
+ * @param {SparseFloatVector} data - The sparse float vector to convert, support 'array' | 'coo' | 'csr' | 'dict'.
133
+ *
134
+ * @returns {Uint8Array} Bytes representing the sparse float vector.
135
+ * @throws {Error} If the length of indices and values is not the same, or if the index is not within the valid range, or if the value is NaN.
136
+ */
137
+ const sparseToBytes = (data) => {
138
+ // detect the format of the sparse vector
139
+ const type = (0, exports.getSparseFloatVectorType)(data);
140
+ let indices = [];
141
+ let values = [];
142
+ switch (type) {
143
+ case 'array':
144
+ for (let i = 0; i < data.length; i++) {
145
+ const element = data[i];
146
+ if (element !== undefined && !isNaN(element)) {
147
+ indices.push(i);
148
+ values.push(element);
149
+ }
150
+ }
151
+ break;
152
+ case 'coo':
153
+ indices = Object.values(data.map((item) => item.index));
154
+ values = Object.values(data.map((item) => item.value));
155
+ break;
156
+ case 'csr':
157
+ indices = data.indices;
158
+ values = data.values;
159
+ break;
160
+ case 'dict':
161
+ indices = Object.keys(data).map(Number);
162
+ values = Object.values(data);
163
+ break;
164
+ }
165
+ // create a buffer to store the bytes
166
+ const bytes = new Uint8Array(8 * indices.length);
167
+ // loop through the indices and values and add them to the buffer
168
+ for (let i = 0; i < indices.length; i++) {
169
+ const index = indices[i];
170
+ const value = values[i];
171
+ if (!(index >= 0 && index < Math.pow(2, 32) - 1)) {
172
+ throw new Error(`Sparse vector index must be positive and less than 2^32-1: ${index}`);
173
+ }
174
+ const indexBytes = new Uint32Array([index]);
175
+ const valueBytes = new Float32Array([value]);
176
+ bytes.set(new Uint8Array(indexBytes.buffer), i * 8);
177
+ bytes.set(new Uint8Array(valueBytes.buffer), i * 8 + 4);
178
+ }
179
+ return bytes;
180
+ };
181
+ exports.sparseToBytes = sparseToBytes;
182
+ /**
183
+ * Converts an array of sparse float vectors into an array of bytes format.
184
+ *
185
+ * @param {SparseFloatVector[]} data - The array of sparse float vectors to convert.
186
+ *
187
+ * @returns {Uint8Array[]} An array of bytes representing the sparse float vectors.
188
+ */
189
+ const sparseRowsToBytes = (data) => {
190
+ const result = [];
191
+ for (const row of data) {
192
+ result.push((0, exports.sparseToBytes)(row));
193
+ }
194
+ return result;
195
+ };
196
+ exports.sparseRowsToBytes = sparseRowsToBytes;
197
+ /**
198
+ * Parses the provided buffer data into a sparse row representation.
199
+ *
200
+ * @param {Buffer} bufferData - The buffer data to parse.
201
+ *
202
+ * @returns {SparseFloatVector} The parsed sparse float vectors.
203
+ */
204
+ const bytesToSparseRow = (bufferData) => {
205
+ const result = {};
206
+ for (let i = 0; i < bufferData.length; i += 8) {
207
+ const key = bufferData.readUInt32LE(i).toString();
208
+ const value = bufferData.readFloatLE(i + 4);
209
+ if (value) {
210
+ result[key] = value;
211
+ }
212
+ }
213
+ return result;
214
+ };
215
+ exports.bytesToSparseRow = bytesToSparseRow;
216
+ /**
217
+ * This function builds a placeholder group in bytes format for Milvus.
218
+ *
219
+ * @param {Root} milvusProto - The root object of the Milvus protocol.
220
+ * @param {VectorTypes[]} vectors - An array of search vectors.
221
+ * @param {DataType} vectorDataType - The data type of the vectors.
222
+ *
223
+ * @returns {Uint8Array} The placeholder group in bytes format.
224
+ */
225
+ const buildPlaceholderGroupBytes = (milvusProto, vectors, vectorDataType) => {
226
+ // create placeholder_group value
227
+ let bytes;
228
+ // parse vectors to bytes
229
+ switch (vectorDataType) {
230
+ case __1.DataType.FloatVector:
231
+ bytes = vectors.map(v => (0, exports.f32ArrayToF32Bytes)(v));
232
+ break;
233
+ case __1.DataType.BinaryVector:
234
+ bytes = vectors.map(v => (0, exports.f32ArrayToBinaryBytes)(v));
235
+ break;
236
+ case __1.DataType.BFloat16Vector:
237
+ bytes = vectors.map(v => Array.isArray(v) ? (0, exports.f32ArrayToBf16Bytes)(v) : v);
238
+ break;
239
+ case __1.DataType.Float16Vector:
240
+ bytes = vectors.map(v => Array.isArray(v) ? (0, exports.f32ArrayToF16Bytes)(v) : v);
241
+ break;
242
+ case __1.DataType.SparseFloatVector:
243
+ bytes = vectors.map(v => (0, exports.sparseToBytes)(v));
244
+ break;
245
+ }
246
+ // create placeholder_group
247
+ const PlaceholderGroup = milvusProto.lookupType('milvus.proto.common.PlaceholderGroup');
248
+ // tag $0 is hard code in milvus, when dsltype is expr
249
+ const placeholderGroupBytes = PlaceholderGroup.encode(PlaceholderGroup.create({
250
+ placeholders: [
251
+ {
252
+ tag: '$0',
253
+ type: vectorDataType,
254
+ values: bytes,
255
+ },
256
+ ],
257
+ })).finish();
258
+ return placeholderGroupBytes;
259
+ };
260
+ exports.buildPlaceholderGroupBytes = buildPlaceholderGroupBytes;
261
+ //# sourceMappingURL=Bytes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Bytes.js","sourceRoot":"","sources":["../../../milvus/utils/Bytes.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import { Type } from 'protobufjs';
2
- import { KeyValuePair, FieldType, DataTypeMap, DataType, CreateCollectionReq, DescribeCollectionResponse, RowData, Field, FieldData } from '../';
1
+ import { Type, Root } from 'protobufjs';
2
+ import { KeyValuePair, FieldType, DataTypeMap, DataType, CreateCollectionReq, DescribeCollectionResponse, RowData, Field, FieldData, SearchReq, SearchSimpleReq, VectorTypes, SearchParam, HybridSearchSingleReq, HybridSearchReq, DslType, SearchRes, ConsistencyLevelEnum, RerankerObj, InsertTransformers, OutputTransformers } from '../';
3
3
  /**
4
- * parse [{key:"row_count",value:4}] to {row_count:4}
5
- * @param data key value pair array
6
- * @param keys all keys in data
7
- * @returns {key:value}
4
+ * Formats key-value data based on the provided keys.
5
+ * @param {KeyValuePair[]} data - The array of key-value pairs.
6
+ * @param {string[]} keys - The keys to include in the formatted result.
7
+ * @returns {Object} - The formatted key-value data as an object.
8
8
  */
9
9
  export declare const formatKeyValueData: (data: KeyValuePair[], keys: string[]) => {
10
10
  [x: string]: any;
@@ -24,74 +24,32 @@ export declare const parseToKeyValue: (data?: {
24
24
  * @returns
25
25
  */
26
26
  export declare const formatNumberPrecision: (number: number, precision: number) => number;
27
- export declare const checkTimeParam: (ts: any) => boolean;
28
27
  /**
29
- * Convert a hybrid timestamp to UNIX Epoch time ignoring the logic part.
30
- *
31
- * @param data
32
- * | Property | Type | Description |
33
- * | :---------------- | :---- | :------------------------------- |
34
- * | hybridts | String or BigInt | The known hybrid timestamp to convert to UNIX Epoch time. Non-negative interger range from 0 to 18446744073709551615. |
35
- *
36
- *
37
- *
38
- * @returns
39
- * | Property | Description |
40
- * | :-----------| :------------------------------- |
41
- * | unixtime as string | The Unix Epoch time is the number of seconds that have elapsed since January 1, 1970 (midnight UTC/GMT). |
28
+ * Checks if the given time parameter is valid.
42
29
  *
43
- *
44
- * #### Example
45
- *
46
- * ```
47
- * const res = hybridtsToUnixtime("429642767925248000");
48
- * ```
30
+ * @param ts - The time parameter to be checked.
31
+ * @returns A boolean value indicating whether the time parameter is valid or not.
32
+ */
33
+ export declare const checkTimeParam: (ts: any) => boolean;
34
+ /**
35
+ * Converts a hybrid timestamp to Unix time.
36
+ * @param hybridts - The hybrid timestamp to convert.
37
+ * @returns The Unix time representation of the hybrid timestamp.
38
+ * @throws An error if the hybridts parameter fails the time parameter check.
49
39
  */
50
40
  export declare const hybridtsToUnixtime: (hybridts: bigint | string) => string;
51
41
  /**
52
- * Generate a hybrid timestamp based on Unix Epoch time, timedelta and incremental time internval.
53
- *
54
- * @param data
55
- * | Property | Type | Description |
56
- * | :---------------- | :---- | :------------------------------- |
57
- * | unixtime | string or bigint | The known Unix Epoch time used to generate a hybrid timestamp. The Unix Epoch time is the number of seconds that have elapsed since January 1, 1970 (midnight UTC/GMT). |
58
- *
59
- *
60
- *
61
- * @returns
62
- * | Property | Type | Description |
63
- * | :-----------| :--- | :------------------------------- |
64
- * | Hybrid timetamp | String | Hybrid timetamp is a non-negative interger range from 0 to 18446744073709551615. |
65
- *
66
- *
67
- * #### Example
68
- *
69
- * ```
70
- * const res = unixtimeToHybridts("429642767925248000");
71
- * ```
42
+ * Converts a Unix timestamp to a hybrid timestamp.
43
+ * @param unixtime - The Unix timestamp to convert.
44
+ * @returns The hybrid timestamp as a string.
45
+ * @throws An error if the unixtime parameter fails the check.
72
46
  */
73
47
  export declare const unixtimeToHybridts: (unixtime: bigint | string) => string;
74
48
  /**
75
- * Generate a hybrid timestamp based on datetime。
76
- *
77
- * @param data
78
- * | Property | Type | Description |
79
- * | :---------------- | :---- | :------------------------------- |
80
- * | datetime | Date | The known datetime used to generate a hybrid timestamp. |
81
- *
82
- *
83
- *
84
- * @returns
85
- * | Property | Type | Description |
86
- * | :-----------| :--- | :------------------------------- |
87
- * | Hybrid timetamp | String | Hybrid timetamp is a non-negative interger range from 0 to 18446744073709551615. |
88
- *
89
- *
90
- * #### Example
91
- *
92
- * ```
93
- * const res = datetimeToHybrids("429642767925248000");
94
- * ```
49
+ * Converts a JavaScript Date object to a hybridts timestamp.
50
+ * @param datetime - The JavaScript Date object to be converted.
51
+ * @returns The hybridts timestamp.
52
+ * @throws An error if the input is not a valid Date object.
95
53
  */
96
54
  export declare const datetimeToHybrids: (datetime: Date) => string;
97
55
  /**
@@ -178,7 +136,7 @@ export declare const buildDynamicRow: (rowData: RowData, fieldMap: Map<string, F
178
136
  * If the field is a vector, split the data into chunks of the appropriate size.
179
137
  * If the field is a scalar, decode the JSON/array data if necessary.
180
138
  */
181
- export declare const buildFieldDataMap: (fields_data: any[]) => Map<string, RowData[]>;
139
+ export declare const buildFieldDataMap: (fields_data: any[], transformers?: OutputTransformers) => Map<string, RowData[]>;
182
140
  /**
183
141
  * Generates an authentication string based on the provided credentials.
184
142
  *
@@ -200,4 +158,104 @@ export declare const getAuthString: (data: {
200
158
  * @param {Field} column - The column information.
201
159
  * @returns {FieldData} The field data for the row and column.
202
160
  */
203
- export declare const buildFieldData: (rowData: RowData, field: Field) => FieldData;
161
+ export declare const buildFieldData: (rowData: RowData, field: Field, transformers?: InsertTransformers) => FieldData;
162
+ /**
163
+ * Builds search parameters based on the provided data.
164
+ * @param data - The data object containing search parameters.
165
+ * @returns The search parameters in key-value format.
166
+ */
167
+ export declare const buildSearchParams: (data: SearchSimpleReq | (HybridSearchSingleReq & HybridSearchReq), anns_field: string) => SearchParam;
168
+ /**
169
+ * Creates a RRFRanker object with the specified value of k.
170
+ * @param k - The value of k used in the RRFRanker strategy.
171
+ * @returns An object representing the RRFRanker strategy with the specified value of k.
172
+ */
173
+ export declare const RRFRanker: (k?: number) => RerankerObj;
174
+ /**
175
+ * Creates a weighted ranker object.
176
+ * @param weights - An array of numbers representing the weights.
177
+ * @returns The weighted ranker object.
178
+ */
179
+ export declare const WeightedRanker: (weights: number[]) => RerankerObj;
180
+ /**
181
+ * Converts the rerank parameters object to a format suitable for API requests.
182
+ * @param rerank - The rerank parameters object.
183
+ * @returns The converted rerank parameters object.
184
+ */
185
+ export declare const convertRerankParams: (rerank: RerankerObj) => any;
186
+ /**
187
+ * This method is used to build search request for a given data.
188
+ * It first fetches the collection info and then constructs the search request based on the data type.
189
+ * It also creates search vectors and a placeholder group for the search.
190
+ *
191
+ * @param {SearchReq | SearchSimpleReq | HybridSearchReq} data - The data for which to build the search request.
192
+ * @param {DescribeCollectionResponse} collectionInfo - The collection information.
193
+ * @param {Root} milvusProto - The milvus protocol object.
194
+ * @returns {Object} An object containing the search requests and search vectors.
195
+ * @returns {Object} return.params - The search requests used in the operation.
196
+ * @returns {string} return.params.collection_name - The name of the collection.
197
+ * @returns {string[]} return.params.partition_names - The partition names.
198
+ * @returns {string[]} return.params.output_fields - The output fields.
199
+ * @returns {number} return.params.nq - The number of query vectors.
200
+ * @returns {string} return.params.dsl - The domain specific language.
201
+ * @returns {string} return.params.dsl_type - The type of the domain specific language.
202
+ * @returns {Uint8Array} return.params.placeholder_group - The placeholder group.
203
+ * @returns {Object} return.params.search_params - The search parameters.
204
+ * @returns {string} return.params.consistency_level - The consistency level.
205
+ * @returns {Number[][]} return.searchVectors - The search vectors used in the operation.
206
+ * @returns {number} return.round_decimal - The score precision.
207
+ */
208
+ export declare const buildSearchRequest: (data: SearchReq | SearchSimpleReq | HybridSearchReq, collectionInfo: DescribeCollectionResponse, milvusProto: Root) => {
209
+ isHybridSearch: boolean;
210
+ request: {
211
+ collection_name: string;
212
+ partition_names: string[];
213
+ output_fields: string[];
214
+ nq: number;
215
+ dsl: string;
216
+ dsl_type: DslType;
217
+ placeholder_group: Uint8Array;
218
+ search_params: KeyValuePair[];
219
+ consistency_level: ConsistencyLevelEnum;
220
+ } | {
221
+ collection_name: string;
222
+ partition_names: string[] | undefined;
223
+ requests: {
224
+ collection_name: string;
225
+ partition_names: string[];
226
+ output_fields: string[];
227
+ nq: number;
228
+ dsl: string;
229
+ dsl_type: DslType;
230
+ placeholder_group: Uint8Array;
231
+ search_params: KeyValuePair[];
232
+ consistency_level: ConsistencyLevelEnum;
233
+ }[];
234
+ rank_params: KeyValuePair[];
235
+ output_fields: string[];
236
+ consistency_level: ConsistencyLevelEnum;
237
+ };
238
+ nq: number;
239
+ round_decimal: number;
240
+ };
241
+ /**
242
+ * Formats the search results returned by Milvus into row data for easier use.
243
+ *
244
+ * @param {SearchRes} searchRes - The search results returned by Milvus.
245
+ * @param {Object} options - The options for formatting the search results.
246
+ * @param {number} options.round_decimal - The number of decimal places to which to round the scores.
247
+ *
248
+ * @returns {any[]} The formatted search results.
249
+ *
250
+ */
251
+ export declare const formatSearchResult: (searchRes: SearchRes, options: {
252
+ round_decimal: number;
253
+ transformers?: OutputTransformers;
254
+ }) => any[];
255
+ /**
256
+ * Formats the search vector to match a specific data type.
257
+ * @param {VectorTypes | VectorTypes[]} searchVector - The search vector or array of vectors to be formatted.
258
+ * @param {DataType} dataType - The specified data type.
259
+ * @returns {VectorTypes[]} The formatted search vector or array of vectors.
260
+ */
261
+ export declare const formatSearchVector: (searchVector: VectorTypes | VectorTypes[], dataType: DataType) => VectorTypes[];