Skip to content

Commit 521b27f

Browse files
committed
fix: create index for outer_db
1 parent 835051f commit 521b27f

File tree

1 file changed

+22
-3
lines changed

1 file changed

+22
-3
lines changed

src/memos/graph_dbs/neo4j_community.py

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,10 @@ class Neo4jCommunityGraphDB(Neo4jGraphDB):
2424
def __init__(self, config: Neo4jGraphDBConfig):
2525
assert config.auto_create is False
2626
assert config.use_multi_db is False
27-
# Call parent init
28-
super().__init__(config)
29-
3027
# Init vector database
3128
self.vec_db = VecDBFactory.from_config(config.vec_config)
29+
# Call parent init
30+
super().__init__(config)
3231

3332
def create_index(
3433
self,
@@ -239,6 +238,7 @@ def _create_basic_property_indexes(self) -> None:
239238
Create standard B-tree indexes on user_name when use Shared Database
240239
Multi-Tenant Mode
241240
"""
241+
# Step 1: Neo4j indexes
242242
try:
243243
with self.driver.session(database=self.db_name) as session:
244244
session.run("""
@@ -270,6 +270,25 @@ def _create_basic_property_indexes(self) -> None:
270270
except Exception as e:
271271
logger.warning(f"Failed to create basic property indexes: {e}")
272272

273+
# Step 2: Qdrant payload indexes
274+
try:
275+
# Qdrant supports `create_payload_index`, which is idempotent
276+
self.vec_db.client.create_payload_index(
277+
collection_name=self.vec_db.config.collection_name,
278+
field_name="user_name",
279+
field_schema="keyword",
280+
)
281+
logger.debug("Qdrant payload index on 'user_name' ensured.")
282+
283+
self.vec_db.client.create_payload_index(
284+
collection_name=self.vec_db.config.collection_name,
285+
field_name="memory_type",
286+
field_schema="keyword",
287+
)
288+
logger.debug("Qdrant payload index on 'memory_type' ensured.")
289+
except Exception as e:
290+
logger.warning(f"Failed to create Qdrant payload indexes: {e}")
291+
273292
def _parse_node(self, node_data: dict[str, Any]) -> dict[str, Any]:
274293
"""Parse Neo4j node and optionally fetch embedding from vector DB."""
275294
node = node_data.copy()

0 commit comments

Comments
 (0)