Преглед изворни кода

fix: correct Milvus query expression syntax (array_contains, json field access)

guantao пре 3 часа
родитељ
комит
7833a938d9
1 измењених фајлова са 5 додато и 5 уклоњено
  1. 5 5
      knowhub/server.py

+ 5 - 5
knowhub/server.py

@@ -591,12 +591,12 @@ async def search_knowledge_api(
         if types:
             type_list = [t.strip() for t in types.split(',') if t.strip()]
             for t in type_list:
-                filters.append(f'ARRAY_CONTAINS(types, "{t}")')
+                filters.append(f'array_contains(types, "{t}")')
         if owner:
             filters.append(f'owner == "{owner}"')
 
         # 添加 min_score 过滤
-        filters.append(f'JSON_EXTRACT(eval, "$.score") >= {min_score}')
+        filters.append(f'eval["score"] >= {min_score}')
 
         filter_expr = ' and '.join(filters) if filters else None
 
@@ -717,10 +717,10 @@ def list_knowledge(
         if types:
             type_list = [t.strip() for t in types.split(',') if t.strip()]
             for t in type_list:
-                filters.append(f'ARRAY_CONTAINS(types, "{t}")')
+                filters.append(f'array_contains(types, "{t}")')
 
         if scopes:
-            filters.append(f'ARRAY_CONTAINS(scopes, "{scopes}")')
+            filters.append(f'array_contains(scopes, "{scopes}")')
 
         if owner:
             filters.append(f'owner like "%{owner}%"')
@@ -729,7 +729,7 @@ def list_knowledge(
         if tags:
             tag_list = [t.strip() for t in tags.split(',') if t.strip()]
             for t in tag_list:
-                filters.append(f'JSON_CONTAINS_ANY(tags, ["{t}"])')
+                filters.append(f'json_contains(tags, \'"{t}"\')')
 
         # 如果没有过滤条件,查询所有
         filter_expr = ' and '.join(filters) if filters else 'id != ""'