Yuguo Qin
commited on
Commit
·
2dbed2e
1
Parent(s):
5508c06
Fix neo4j outdated get_edge() return data format.
Browse files
lightrag/kg/neo4j_impl.py
CHANGED
|
@@ -278,14 +278,16 @@ class Neo4JStorage(BaseGraphStorage):
|
|
| 278 |
|
| 279 |
result = await session.run(query)
|
| 280 |
record = await result.single()
|
| 281 |
-
if record
|
| 282 |
try:
|
| 283 |
result = dict(record["edge_properties"])
|
|
|
|
| 284 |
# Ensure required keys exist with defaults
|
| 285 |
required_keys = {
|
| 286 |
"weight": 0.0,
|
| 287 |
"source_id": None,
|
| 288 |
-
"
|
|
|
|
| 289 |
}
|
| 290 |
for key, default_value in required_keys.items():
|
| 291 |
if key not in result:
|
|
@@ -305,20 +307,20 @@ class Neo4JStorage(BaseGraphStorage):
|
|
| 305 |
f"and {entity_name_label_target}: {str(e)}"
|
| 306 |
)
|
| 307 |
# Return default edge properties on error
|
| 308 |
-
return {"weight": 0.0, "
|
| 309 |
|
| 310 |
logger.debug(
|
| 311 |
f"{inspect.currentframe().f_code.co_name}: No edge found between {entity_name_label_source} and {entity_name_label_target}"
|
| 312 |
)
|
| 313 |
# Return default edge properties when no edge found
|
| 314 |
-
return {"weight": 0.0, "
|
| 315 |
|
| 316 |
except Exception as e:
|
| 317 |
logger.error(
|
| 318 |
f"Error in get_edge between {source_node_id} and {target_node_id}: {str(e)}"
|
| 319 |
)
|
| 320 |
# Return default edge properties on error
|
| 321 |
-
return {"weight": 0.0, "
|
| 322 |
|
| 323 |
async def get_node_edges(self, source_node_id: str) -> list[tuple[str, str]] | None:
|
| 324 |
node_label = source_node_id.strip('"')
|
|
|
|
| 278 |
|
| 279 |
result = await session.run(query)
|
| 280 |
record = await result.single()
|
| 281 |
+
if record:
|
| 282 |
try:
|
| 283 |
result = dict(record["edge_properties"])
|
| 284 |
+
logger.info(f"Result: {result}")
|
| 285 |
# Ensure required keys exist with defaults
|
| 286 |
required_keys = {
|
| 287 |
"weight": 0.0,
|
| 288 |
"source_id": None,
|
| 289 |
+
"description": None,
|
| 290 |
+
"keywords": None,
|
| 291 |
}
|
| 292 |
for key, default_value in required_keys.items():
|
| 293 |
if key not in result:
|
|
|
|
| 307 |
f"and {entity_name_label_target}: {str(e)}"
|
| 308 |
)
|
| 309 |
# Return default edge properties on error
|
| 310 |
+
return {"weight": 0.0, "description": None, "keywords": None, "source_id": None}
|
| 311 |
|
| 312 |
logger.debug(
|
| 313 |
f"{inspect.currentframe().f_code.co_name}: No edge found between {entity_name_label_source} and {entity_name_label_target}"
|
| 314 |
)
|
| 315 |
# Return default edge properties when no edge found
|
| 316 |
+
return {"weight": 0.0, "description": None, "keywords": None, "source_id": None}
|
| 317 |
|
| 318 |
except Exception as e:
|
| 319 |
logger.error(
|
| 320 |
f"Error in get_edge between {source_node_id} and {target_node_id}: {str(e)}"
|
| 321 |
)
|
| 322 |
# Return default edge properties on error
|
| 323 |
+
return {"weight": 0.0, "description": None, "keywords": None, "source_id": None}
|
| 324 |
|
| 325 |
async def get_node_edges(self, source_node_id: str) -> list[tuple[str, str]] | None:
|
| 326 |
node_label = source_node_id.strip('"')
|