Skip to content

Commit a088a87

Browse files
committed
Parametrize Neo4j query node or relationship alias when formatting required properties
Signed-off-by: Edwin Yu <edwinyyyu@gmail.com>
1 parent bab67e6 commit a088a87

1 file changed

Lines changed: 11 additions & 7 deletions

File tree

src/memmachine/common/vector_graph_store/neo4j_vector_graph_store.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ async def search_similar_nodes(
229229
f"WHERE n.{embedding_property_name} IS NOT NULL\n"
230230
f"AND {
231231
Neo4jVectorGraphStore._format_required_properties(
232-
required_properties, include_missing_properties
232+
"n", required_properties, include_missing_properties
233233
)
234234
}\n"
235235
"WITH n,"
@@ -251,7 +251,7 @@ async def search_similar_nodes(
251251
}\n"
252252
f"AND {
253253
Neo4jVectorGraphStore._format_required_properties(
254-
required_properties, include_missing_properties
254+
"n", required_properties, include_missing_properties
255255
)
256256
}\n"
257257
"RETURN n\n"
@@ -305,7 +305,7 @@ async def search_related_nodes(
305305
})"
306306
f"WHERE {
307307
Neo4jVectorGraphStore._format_required_properties(
308-
required_properties, include_missing_properties
308+
"n", required_properties, include_missing_properties
309309
)
310310
}\n"
311311
"RETURN n\n"
@@ -360,7 +360,7 @@ async def search_directional_nodes(
360360
}\n"
361361
f"AND {
362362
Neo4jVectorGraphStore._format_required_properties(
363-
required_properties, include_missing_properties
363+
"n", required_properties, include_missing_properties
364364
)
365365
}\n"
366366
"RETURN n\n"
@@ -392,7 +392,7 @@ async def search_matching_nodes(
392392
})\n"
393393
f"WHERE {
394394
Neo4jVectorGraphStore._format_required_properties(
395-
required_properties, include_missing_properties
395+
"n", required_properties, include_missing_properties
396396
)
397397
}\n"
398398
"RETURN n\n"
@@ -448,13 +448,17 @@ def _format_labels(labels: Iterable[str] | None) -> str:
448448

449449
@staticmethod
450450
def _format_required_properties(
451+
entity_query_alias: str,
451452
required_properties: Mapping[str, Property],
452453
include_missing_properties: bool,
453454
) -> str:
454455
"""
455456
Format required properties for use in a Cypher query.
456457
457458
Args:
459+
entity_query_alias (str):
460+
Alias of the node or relationship in the query
461+
(e.g., "n", "r").
458462
required_properties (Mapping[str, Property]):
459463
Mapping of required properties.
460464
include_missing_properties (bool):
@@ -468,10 +472,10 @@ def _format_required_properties(
468472
return (
469473
" AND ".join(
470474
[
471-
f"(n.{property_name}"
475+
f"({entity_query_alias}.{property_name}"
472476
f" = $required_properties.{property_name}"
473477
f"{
474-
f' OR n.{property_name} IS NULL'
478+
f' OR {entity_query_alias}.{property_name} IS NULL'
475479
if include_missing_properties
476480
else ''
477481
})"

0 commit comments

Comments
 (0)