2
0

Helper.ts 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import {
  2. KeyValuePair,
  3. FieldSchema,
  4. } from '@zilliz/milvus2-sdk-node/dist/milvus/types';
  5. export const findKeyValue = (obj: KeyValuePair[], key: string) =>
  6. obj.find(v => v.key === key)?.value;
  7. export const genDataByType = ({ data_type, type_params }: FieldSchema) => {
  8. switch (data_type) {
  9. case 'Bool':
  10. return Math.random() > 0.5;
  11. case 'Int8':
  12. return Math.floor(Math.random() * 127);
  13. case 'Int16':
  14. return Math.floor(Math.random() * 32767);
  15. case 'Int32':
  16. return Math.floor(Math.random() * 214748364);
  17. case 'Int64':
  18. return Math.floor(Math.random() * 214748364);
  19. case 'FloatVector':
  20. return Array.from({ length: (type_params as any)[0].value }).map(() =>
  21. Math.random()
  22. );
  23. case 'BinaryVector':
  24. return Array.from({ length: (type_params as any)[0].value / 8 }).map(() =>
  25. Math.random() > 0.5 ? 1 : 0
  26. );
  27. case 'VarChar':
  28. return makeRandomId((type_params as any)[0].value);
  29. }
  30. };
  31. export const genRow = (fields: FieldSchema[]) => {
  32. const result: any = {};
  33. fields.forEach(field => {
  34. if (!field.autoID) {
  35. result[field.name] = genDataByType(field);
  36. }
  37. });
  38. return result;
  39. };
  40. export const genRows = (fields: FieldSchema[], size: number) => {
  41. const result = [];
  42. for (let i = 0; i < size; i++) {
  43. result[i] = genRow(fields);
  44. }
  45. return result;
  46. };
  47. export const makeRandomId = (length: number): string => {
  48. let result = '';
  49. const characters =
  50. 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
  51. const charactersLength = characters.length;
  52. for (let i = 0; i < length; i++) {
  53. result += characters.charAt(Math.floor(Math.random() * charactersLength));
  54. }
  55. return result;
  56. };