Add analyzer_params config for milvus vectordb (#18180)
This commit is contained in:
@@ -32,6 +32,7 @@ class MilvusConfig(BaseModel):
|
||||
batch_size: int = 100 # Batch size for operations
|
||||
database: str = "default" # Database name
|
||||
enable_hybrid_search: bool = False # Flag to enable hybrid search
|
||||
analyzer_params: Optional[str] = None # Analyzer params
|
||||
|
||||
@model_validator(mode="before")
|
||||
@classmethod
|
||||
@@ -58,6 +59,7 @@ class MilvusConfig(BaseModel):
|
||||
"user": self.user,
|
||||
"password": self.password,
|
||||
"db_name": self.database,
|
||||
"analyzer_params": self.analyzer_params,
|
||||
}
|
||||
|
||||
|
||||
@@ -300,14 +302,19 @@ class MilvusVector(BaseVector):
|
||||
|
||||
# Create the text field, enable_analyzer will be set True to support milvus automatically
|
||||
# transfer text to sparse_vector, reference: https://milvus.io/docs/full-text-search.md
|
||||
fields.append(
|
||||
FieldSchema(
|
||||
Field.CONTENT_KEY.value,
|
||||
DataType.VARCHAR,
|
||||
max_length=65_535,
|
||||
enable_analyzer=self._hybrid_search_enabled,
|
||||
)
|
||||
)
|
||||
content_field_kwargs: dict[str, Any] = {
|
||||
"max_length": 65_535,
|
||||
"enable_analyzer": self._hybrid_search_enabled,
|
||||
}
|
||||
if (
|
||||
self._hybrid_search_enabled
|
||||
and self._client_config.analyzer_params is not None
|
||||
and self._client_config.analyzer_params.strip()
|
||||
):
|
||||
content_field_kwargs["analyzer_params"] = self._client_config.analyzer_params
|
||||
|
||||
fields.append(FieldSchema(Field.CONTENT_KEY.value, DataType.VARCHAR, **content_field_kwargs))
|
||||
|
||||
# Create the primary key field
|
||||
fields.append(FieldSchema(Field.PRIMARY_KEY.value, DataType.INT64, is_primary=True, auto_id=True))
|
||||
# Create the vector field, supports binary or float vectors
|
||||
@@ -383,5 +390,6 @@ class MilvusVectorFactory(AbstractVectorFactory):
|
||||
password=dify_config.MILVUS_PASSWORD or "",
|
||||
database=dify_config.MILVUS_DATABASE or "",
|
||||
enable_hybrid_search=dify_config.MILVUS_ENABLE_HYBRID_SEARCH or False,
|
||||
analyzer_params=dify_config.MILVUS_ANALYZER_PARAMS or "",
|
||||
),
|
||||
)
|
||||
|
Reference in New Issue
Block a user