Native projection creates an optimized in-memory graph for Neo4j Graph Data Science algorithms by reading directly from Neo4j storage. It selects nodes by labels and relationships by types, making it performant but less flexible than Cypher projection. section 5.2
Use CALL gds.graph.project() to store a named graph in the graph catalog. The graph name identifies the projection for later algorithm executions, while nodeProjection and relationshipProjection define its contents. section 5.2.1
Projecting a follower network
CALL gds.graph.project('follower-network', 'User', 'FOLLOWS') creates an in-memory graph containing User nodes and FOLLOWS relationships. A relationship is skipped when both of its adjacent nodes are absent from the node projection. section 5.2.1
Native projection is useful when:
- You need a high-performance projection for graph algorithm execution. section 5.2
- Labels and relationship types provide sufficient filtering. section 5.2
- You can materialize a transformed network in Neo4j before loading it, because native projection does not transform networks during loading. section 6.1
Use the workflow figure to connect stored graph data, in-memory projection, and subsequent GDS algorithm execution. section 5.2
