Neo4j backend
pylpg.backend.neo4j
Neo4j backend using the official Neo4j Python driver.
Classes:
| Name | Description |
|---|---|
Neo4jBackend |
Backend for Neo4j databases. |
Neo4jBackend
Neo4jBackend(hostname: str = 'localhost', port: int = 7687, database: str = 'neo4j', username: str = 'neo4j', password: str = 'neo4j', protocol: str = 'bolt', notifications_min_severity: Literal['off', 'information', 'warning'] | None = None)
Bases: Backend
Backend for Neo4j databases.
Uses UNWIND queries for batch operations, providing significant speedups over individual queries at scale.
Methods:
| Name | Description |
|---|---|
deserialize_node |
Return a node record as a dict of its properties. |
deserialize_relationship |
Return a relationship record as a dict of its properties. |
result_set_limit |
Maximum number of rows a single query may return. |
traverse_batch |
Traverse from many source nodes at once. |
Source code in src/pylpg/backend/neo4j.py
deserialize_node
Return a node record as a dict of its properties.
The dict also carries _labels and _database_id.
deserialize_relationship
Return a relationship record as a dict of its properties.
The dict also carries _database_id, _start_id and _end_id.
The record must come from a matched pattern, not from a path.
Source code in src/pylpg/backend/neo4j.py
result_set_limit
Maximum number of rows a single query may return.
Returns None when the backend imposes no limit. Backends that
silently truncate oversized result sets (FalkorDB caps at
RESULTSET_SIZE, 10000 by default) must report their limit here
so traverse_batch can split batches instead of losing rows.
Source code in src/pylpg/backend/base.py
traverse_batch
traverse_batch(source_ids: list[Any], relationship_type: str, direction: Direction) -> list[dict[str, Any]]
Traverse from many source nodes at once.
Splits the batch and retries whenever a result set comes back at the backend's row limit, since such a result set may have been silently truncated.