{"record":{"id":"0724f871bf7e0f53","repo":"RyanCodrai/turbovec","slug":"turboquantvectordb-only-supports-search-type-searc","errorCode":null,"errorMessage":"TurboQuantVectorDb only supports search_type=SearchType.vector; got {search_type}. Use LanceDb / Chroma / etc. for keyword or hybrid search.","messagePattern":"TurboQuantVectorDb only supports search_type=SearchType\\.vector; got (.+?)\\. Use LanceDb / Chroma / etc\\. for keyword or hybrid search\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"turbovec-python/python/turbovec/agno.py","lineNumber":192,"sourceCode":"            from this path if present.\n        \"\"\"\n        super().__init__(\n            id=id,\n            name=name,\n            description=description,\n            similarity_threshold=similarity_threshold,\n        )\n        if embedder is None:\n            raise ValueError(\n                \"`embedder` is required; turbovec needs the embedder's \"\n                \"`dimensions` to size the underlying index.\"\n            )\n        if embedder.dimensions is None:\n            raise ValueError(\"Embedder.dimensions must be set.\")\n        if bit_width not in (2, 3, 4):\n            raise ValueError(f\"bit_width must be 2, 3, or 4, got {bit_width}\")\n        if search_type != SearchType.vector:\n            raise ValueError(\n                f\"TurboQuantVectorDb only supports search_type=SearchType.vector; \"\n                f\"got {search_type}. Use LanceDb / Chroma / etc. for keyword \"\n                f\"or hybrid search.\"\n            )\n        if distance not in (Distance.cosine, Distance.max_inner_product):\n            raise ValueError(\n                f\"TurboQuantVectorDb supports distance=Distance.cosine or \"\n                f\"distance=Distance.max_inner_product; got {distance}. \"\n                f\"L2 distance is not supported by the underlying \"\n                f\"inner-product kernel.\"\n            )\n\n        self.embedder: Embedder = embedder\n        self.dimensions: int = embedder.dimensions\n        self.bit_width = bit_width\n        # Assigned through the validating property below, so the guard\n        # applies to runtime mutation as well as construction.\n        self.search_type = search_type","sourceCodeStart":174,"sourceCodeEnd":210,"githubUrl":"https://github.com/RyanCodrai/turbovec/blob/ccab9f325e6ce2a270a87daf01ae4e443bcf2d49/turbovec-python/python/turbovec/agno.py#L174-L210","documentation":"TurboQuantVectorDb only implements vector (semantic) search. If constructed with search_type other than SearchType.vector (e.g. keyword or hybrid), it raises a ValueError directing you to backends like LanceDb or Chroma that support those modes.","triggerScenarios":"TurboQuantVectorDb(..., search_type=SearchType.keyword) or SearchType.hybrid, or search_type copied from a config intended for another agno VectorDb implementation.","commonSituations":"Sharing a shared agno vector-db config dict across multiple backends; migrating from LanceDb/Chroma where keyword/hybrid was used; believing the quantized index supports BM25-style search.","solutions":["Remove search_type or set it explicitly to SearchType.vector.","If you need keyword or hybrid search, switch to LanceDb, Chroma, or another backend that supports it.","Factor backend-specific options out of shared config so search_type only applies to supporting backends."],"exampleFix":"// before\nTurboQuantVectorDb(embedder=e, search_type=SearchType.hybrid)\n// after\nTurboQuantVectorDb(embedder=e, search_type=SearchType.vector)","handlingStrategy":"validation","validationCode":"from agno.vectordb.search import SearchType\nsearch_type = SearchType.vector  # only supported mode","typeGuard":null,"tryCatchPattern":"try:\n    db = TurboQuantVectorDb(embedder=e, search_type=st)\nexcept ValueError as e:\n    if \"search_type\" in str(e):\n        db = LanceDb(embedder=e, search_type=st)  # backend that supports it","preventionTips":["Never share a single search_type config across different vector DB backends.","Default to SearchType.vector when using TurboQuantVectorDb.","Choose LanceDb/Chroma when keyword or hybrid search is a requirement."],"tags":["search-type","unsupported","configuration"],"backgroundTag":"unsupported-enum-value","analyzedSha":"ccab9f325e6ce2a270a87daf01ae4e443bcf2d49","analyzedAt":"2026-09-06T08:39:18.516Z","contentChangedAt":"2026-09-06T08:39:18.516Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}