From 60f905dd319e3397a5b3a9bc756c50893a9ac3cd Mon Sep 17 00:00:00 2001 From: Naseem Ali <34807727+Naseem77@users.noreply.github.com> Date: Wed, 6 Aug 2025 12:22:42 +0300 Subject: [PATCH 1/5] Update node_db_queries.py From 6c2262f63b16e168e31cf78bdc70f9b336801463 Mon Sep 17 00:00:00 2001 From: Naseem Ali <34807727+Naseem77@users.noreply.github.com> Date: Wed, 6 Aug 2025 12:29:42 +0300 Subject: [PATCH 2/5] Update node_db_queries.py --- graphiti_core/models/nodes/node_db_queries.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/graphiti_core/models/nodes/node_db_queries.py b/graphiti_core/models/nodes/node_db_queries.py index fdcf48f17..7f0c01b0d 100644 --- a/graphiti_core/models/nodes/node_db_queries.py +++ b/graphiti_core/models/nodes/node_db_queries.py @@ -130,4 +130,6 @@ def get_community_node_save_query(provider: GraphProvider) -> str: n.group_id AS group_id, n.summary AS summary, n.created_at AS created_at -""" +""" + + From dc03883e83eb8ae5d5eb84c3ac0527416a8dea4d Mon Sep 17 00:00:00 2001 From: Gal Shubeli Date: Sun, 10 Aug 2025 19:14:36 +0300 Subject: [PATCH 3/5] fix-bfs-search --- graphiti_core/search/search_utils.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/graphiti_core/search/search_utils.py b/graphiti_core/search/search_utils.py index 7c266c942..c5db1b38d 100644 --- a/graphiti_core/search/search_utils.py +++ b/graphiti_core/search/search_utils.py @@ -266,7 +266,8 @@ async def edge_bfs_search( query = ( f""" UNWIND $bfs_origin_node_uuids AS origin_uuid - MATCH path = (origin:Entity|Episodic {{uuid: origin_uuid}})-[:RELATES_TO|MENTIONS*1..{bfs_max_depth}]->(:Entity) + MATCH path = (origin {{uuid: origin_uuid}})-[:RELATES_TO|MENTIONS*1..{bfs_max_depth}]->(:Entity) + WHERE origin:Entity OR origin:Episodic UNWIND relationships(path) AS rel MATCH (n:Entity)-[e:RELATES_TO]-(m:Entity) WHERE e.uuid = rel.uuid @@ -410,8 +411,9 @@ async def node_bfs_search( query = ( f""" UNWIND $bfs_origin_node_uuids AS origin_uuid - MATCH (origin:Entity|Episodic {{uuid: origin_uuid}})-[:RELATES_TO|MENTIONS*1..{bfs_max_depth}]->(n:Entity) - WHERE n.group_id = origin.group_id + MATCH (origin {{uuid: origin_uuid}})-[:RELATES_TO|MENTIONS*1..{bfs_max_depth}]->(n:Entity) + WHERE origin:Entity OR origin:Episodic + AND n.group_id = origin.group_id AND origin.group_id IN $group_ids """ + filter_query From b8001b5aea20ddf8739218c34b0d349a4612adc5 Mon Sep 17 00:00:00 2001 From: Gal Shubeli <124919062+galshubeli@users.noreply.github.com> Date: Sun, 10 Aug 2025 19:15:55 +0300 Subject: [PATCH 4/5] Update node_db_queries.py --- graphiti_core/models/nodes/node_db_queries.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/graphiti_core/models/nodes/node_db_queries.py b/graphiti_core/models/nodes/node_db_queries.py index 7f0c01b0d..fdcf48f17 100644 --- a/graphiti_core/models/nodes/node_db_queries.py +++ b/graphiti_core/models/nodes/node_db_queries.py @@ -130,6 +130,4 @@ def get_community_node_save_query(provider: GraphProvider) -> str: n.group_id AS group_id, n.summary AS summary, n.created_at AS created_at -""" - - +""" From a33226f1560e737e53554171a8b71da469780735 Mon Sep 17 00:00:00 2001 From: Gal Shubeli Date: Tue, 12 Aug 2025 13:16:04 +0300 Subject: [PATCH 5/5] optimize-bfs --- graphiti_core/search/search_utils.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/graphiti_core/search/search_utils.py b/graphiti_core/search/search_utils.py index c5db1b38d..ab3c6d24e 100644 --- a/graphiti_core/search/search_utils.py +++ b/graphiti_core/search/search_utils.py @@ -266,8 +266,10 @@ async def edge_bfs_search( query = ( f""" UNWIND $bfs_origin_node_uuids AS origin_uuid - MATCH path = (origin {{uuid: origin_uuid}})-[:RELATES_TO|MENTIONS*1..{bfs_max_depth}]->(:Entity) - WHERE origin:Entity OR origin:Episodic + OPTIONAL MATCH (en:Entity {{uuid: origin_uuid}}) + OPTIONAL MATCH (ep:Episodic {{uuid: origin_uuid}}) + WITH coalesce(en, ep) AS origin + MATCH path = (origin)-[:RELATES_TO|MENTIONS*1..{bfs_max_depth}]->(:Entity) UNWIND relationships(path) AS rel MATCH (n:Entity)-[e:RELATES_TO]-(m:Entity) WHERE e.uuid = rel.uuid @@ -411,9 +413,11 @@ async def node_bfs_search( query = ( f""" UNWIND $bfs_origin_node_uuids AS origin_uuid - MATCH (origin {{uuid: origin_uuid}})-[:RELATES_TO|MENTIONS*1..{bfs_max_depth}]->(n:Entity) - WHERE origin:Entity OR origin:Episodic - AND n.group_id = origin.group_id + OPTIONAL MATCH (en:Entity {{uuid: origin_uuid}}) + OPTIONAL MATCH (ep:Episodic {{uuid: origin_uuid}}) + WITH coalesce(en, ep) AS origin + MATCH (origin)-[:RELATES_TO|MENTIONS*1..{bfs_max_depth}]->(n:Entity) + WHERE n.group_id = origin.group_id AND origin.group_id IN $group_ids """ + filter_query