diff --git a/graphiti_core/driver/kuzu_driver.py b/graphiti_core/driver/kuzu_driver.py index 8a04a4ac..2f287bb5 100644 --- a/graphiti_core/driver/kuzu_driver.py +++ b/graphiti_core/driver/kuzu_driver.py @@ -140,6 +140,12 @@ class KuzuDriver(GraphDriver): def delete_all_indexes(self, database_: str): pass + async def build_indices_and_constraints(self, delete_existing: bool = False): + # Kuzu doesn't support dynamic index creation like Neo4j or FalkorDB + # Schema and indices are created during setup_schema() + # This method is required by the abstract base class but is a no-op for Kuzu + pass + def setup_schema(self): conn = kuzu.Connection(self.db) conn.execute(SCHEMA_QUERIES) diff --git a/graphiti_core/driver/neptune_driver.py b/graphiti_core/driver/neptune_driver.py index d43d20a1..dc77d8f8 100644 --- a/graphiti_core/driver/neptune_driver.py +++ b/graphiti_core/driver/neptune_driver.py @@ -243,6 +243,12 @@ class NeptuneDriver(GraphDriver): if client.indices.exists(index=index_name): client.indices.delete(index=index_name) + async def build_indices_and_constraints(self, delete_existing: bool = False): + # Neptune uses OpenSearch (AOSS) for indexing + if delete_existing: + await self.delete_aoss_indices() + await self.create_aoss_indices() + def run_aoss_query(self, name: str, query_text: str, limit: int = 10) -> dict[str, Any]: for index in aoss_indices: if name.lower() == index['index_name']: