Browse Source

Array json fun for milvus data filter JSON_CONTAINS_ANY and JSON_CONTAINS_ALL (#740)

* Update Util.ts

* Update utils.ts

* Update utils.ts

.

* Update Filter.tsx

.
Rohit Gupta 5 months ago
parent
commit
5d4f8f1c97

+ 4 - 1
client/src/components/advancedSearch/Filter.tsx

@@ -103,7 +103,10 @@ const Filter = forwardRef((props: FilterProps, ref) => {
       if (op === 'ARRAY_CONTAINS_ALL' || op === 'ARRAY_CONTAINS_ANY') {
         newExpr = `${op}(${n}, ${value})`;
       }
-
+      // rewrite expression if the op is JSON_CONTAINS_ANY/JSON_CONTAINS_ANY
+      if (op === 'JSON_CONTAINS_ALL' || op === 'JSON_CONTAINS_ANY') {
+        newExpr = `${op}(${n}, ${value})`;
+      }
       return `${prev}${prev && !prev.endsWith('|| ') ? ' && ' : ''}${newExpr}`;
     }, '');
     func(expression);

+ 4 - 0
client/src/components/advancedSearch/utils.ts

@@ -35,6 +35,10 @@ export const formatValue = (value: string, type: string, operator: string) => {
         case 'ARRAY_CONTAINS_ANY':
           conditionValue = `[${value}]`;
           break;
+        case 'JSON_CONTAINS_ALL':
+        case 'JSON_CONTAINS_ANY':
+          conditionValue = `[${value}]`;
+          break;
         default:
           conditionValue = `"${value}"`;
           break;

+ 8 - 0
client/src/consts/Util.ts

@@ -62,6 +62,14 @@ export const LOGICAL_OPERATORS = [
     value: 'ARRAY_CONTAINS_ANY',
     label: 'ARRAY_CONTAINS_ANY',
   },
+  {
+    value: 'JSON_CONTAINS_ALL',
+    label: 'JSON_CONTAINS_ALL',
+  },
+  {
+    value: 'JSON_CONTAINS_ANY',
+    label: 'JSON_CONTAINS_ANY',
+  },
 ];
 
 export enum FILE_MIME_TYPE {