gzdaniel commited on
Commit
ba5bf63
·
1 Parent(s): 1c07af2

Fix milvus compatible check error

Browse files
Files changed (1) hide show
  1. lightrag/kg/milvus_impl.py +16 -6
lightrag/kg/milvus_impl.py CHANGED
@@ -444,7 +444,18 @@ class MilvusVectorDBStorage(BaseVectorStorage):
444
  for field in collection_info.get("fields", []):
445
  if field.get("name") == "vector":
446
  field_type = field.get("type")
447
- if field_type in ["FloatVector", "FLOAT_VECTOR"]:
 
 
 
 
 
 
 
 
 
 
 
448
  existing_dimension = field.get("params", {}).get("dim")
449
 
450
  if existing_dimension != current_dimension:
@@ -531,7 +542,9 @@ class MilvusVectorDBStorage(BaseVectorStorage):
531
  # 2. Check schema compatibility
532
  self._check_schema_compatibility(collection_info)
533
 
534
- logger.info(f"Collection {self.namespace} compatibility validation passed")
 
 
535
 
536
  except Exception as e:
537
  logger.error(
@@ -571,16 +584,13 @@ class MilvusVectorDBStorage(BaseVectorStorage):
571
  # Check if our specific collection exists
572
  collection_exists = self._client.has_collection(self.namespace)
573
  logger.info(
574
- f"Collection '{self.namespace}' exists check: {collection_exists}"
575
  )
576
 
577
  if collection_exists:
578
  # Double-check by trying to describe the collection
579
  try:
580
  self._client.describe_collection(self.namespace)
581
- logger.info(
582
- f"Collection '{self.namespace}' confirmed to exist, validating compatibility..."
583
- )
584
  self._validate_collection_compatibility()
585
  # Ensure the collection is loaded after validation
586
  self._ensure_collection_loaded()
 
444
  for field in collection_info.get("fields", []):
445
  if field.get("name") == "vector":
446
  field_type = field.get("type")
447
+
448
+ # Extract type name from DataType enum or string
449
+ type_name = None
450
+ if hasattr(field_type, "name"):
451
+ type_name = field_type.name
452
+ elif isinstance(field_type, str):
453
+ type_name = field_type
454
+ else:
455
+ type_name = str(field_type)
456
+
457
+ # Check if it's a vector type (supports multiple formats)
458
+ if type_name in ["FloatVector", "FLOAT_VECTOR"]:
459
  existing_dimension = field.get("params", {}).get("dim")
460
 
461
  if existing_dimension != current_dimension:
 
542
  # 2. Check schema compatibility
543
  self._check_schema_compatibility(collection_info)
544
 
545
+ logger.info(
546
+ f"VectorDB Collection '{self.namespace}' compatibility validation passed"
547
+ )
548
 
549
  except Exception as e:
550
  logger.error(
 
584
  # Check if our specific collection exists
585
  collection_exists = self._client.has_collection(self.namespace)
586
  logger.info(
587
+ f"VectorDB collection '{self.namespace}' exists check: {collection_exists}"
588
  )
589
 
590
  if collection_exists:
591
  # Double-check by trying to describe the collection
592
  try:
593
  self._client.describe_collection(self.namespace)
 
 
 
594
  self._validate_collection_compatibility()
595
  # Ensure the collection is loaded after validation
596
  self._ensure_collection_loaded()