diff --git a/src/intugle/core/semantic_search/crud.py b/src/intugle/core/semantic_search/crud.py index c2236a5..6bd26a0 100644 --- a/src/intugle/core/semantic_search/crud.py +++ b/src/intugle/core/semantic_search/crud.py @@ -50,7 +50,15 @@ def configuration(self): } embeddings_configurations = {**embeddings_configurations, **config} - configuration = QdrantVectorConfiguration(vectors_config=embeddings_configurations) + # Payload schema with keyword index for "type" field required for filtering + payload_schema = { + "type": models.PayloadSchemaType.KEYWORD, + } + + configuration = QdrantVectorConfiguration( + vectors_config=embeddings_configurations, + payload_schema=payload_schema + ) return configuration diff --git a/src/intugle/core/vector_store/qdrant.py b/src/intugle/core/vector_store/qdrant.py index f83301e..3d6eb55 100644 --- a/src/intugle/core/vector_store/qdrant.py +++ b/src/intugle/core/vector_store/qdrant.py @@ -21,6 +21,8 @@ class QdrantVectorConfiguration(BaseModel): sparse_vectors_config: Optional[Mapping[str, qdrant_types.SparseVectorParams]] = None + payload_schema: Optional[Mapping[str, models.PayloadSchemaType]] = None + # Used for standardization