recommendations
recommendations copied to clipboard
Neo4j Graph Example Movies Recommendation
:name: recommendations :long-name: Recommendations :description: Generate personalized real-time recommendations using a dataset of movie reviews :icon: documentation/img/icon-movie.svg :tags: example-data,dataset,movie-data,recommendations,cypher,algorithms :author: William Lyon, updated for GDS 2 by Clair Sullivan :demodb: true :data: false :use-load-script: false :use-dump-file: data/recommendations-40.dump :zip-file: false :use-plugin: false :target-db-version: 4.0 :bloom-perspective: bloom/recommendations.bloom-perspective :guide: documentation/recommendations.neo4j-browser-guide :rendered-guide: https://guides.neo4j.com/sandbox/{name}/index.html :model: documentation/img/model.png :example: documentation/img/example.png :nodes: 28863 :relationships: 166261
:todo: false image::{icon}[width=100]
== {long-name} Graph Example
Description: {description}
ifeval::[{todo} != false] To Do: {todo} endif::[]
Nodes {nodes} Relationships {relationships}
.Model image::{model}[]
.Example image::{example}[width=600]
.Example Query: [source,cypher,role=query-example,param-name=movie,param-value="Crimson Tide",result-column=recommendation,expected-result="Phantom of the Opera, The"]
MATCH (m:Movie {title:$movie})<-[:RATED]-(u:User)-[:RATED]->(rec:Movie) RETURN distinct rec.title AS recommendation LIMIT 20
=== Setup
This is for Neo4j version: {target-db-version}
ifeval::[{use-plugin} != false] Required plugins: {use-plugin} endif::[]
ifeval::[{demodb} != false] The database is also available on https://demo.neo4jlabs.com:7473
Username "{name}", password: "{name}", database: "{name}" endif::[]
Rendered guide available via: :play {rendered-guide}
Unrendered guide: link:{guide}[]
Load graph data via the following:
ifeval::[{data} != false]
==== Data files: {data}
Import flat files (csv, json, etc) using Cypher's https://neo4j.com/docs/cypher-manual/current/clauses/load-csv/[LOAD CSV
], https://neo4j.com/labs/apoc/[APOC library], or https://neo4j.com/developer/data-import/[other methods].
endif::[]
ifeval::[{use-dump-file} != false]
==== Dump file: {use-dump-file}
-
Drop the file into the
Files
section of a project in Neo4j Desktop. Then choose the option toCreate new DBMS from dump
option from the file options. -
Use the neo4j-admin tool to load data from the command line with the command below.
[source,shell,subs=attributes]
bin/neo4j-admin load --from {use-dump-file} [--database "database"]
- Upload the dump file to Neo4j Aura via https://console.neo4j.io/#import-instructions
Note: recommendations-embeddings-50.dump
was dumped from Neo4j 5.18.
endif::[]
ifeval::[{use-load-script} != false]
==== Data load script: {use-load-script}
[source,shell,subs=attributes]
bin/cypher-shell -u neo4j -p "password" -f {use-load-script} [-d "database"]
Or import in Neo4j Browser by dragging or pasting the content of {use-load-script}. endif::[]
ifeval::[{zip-file} != false] ==== Zip file
Download the zip file link:{repo}/raw/master/{name}.zip[{name}.zip] and add it as "project from file" to https://neo4j.com/developer/neo4j-desktop[Neo4j Desktop^]. endif::[]
=== Code Examples
- link:code/javascript/example.js[JavaScript]
- link:code/java/Example.java[Java]
- link:code/csharp/Example.cs[C#]
- link:code/python/example.py[Python]
- link:code/go/example.go[Go]
=== GraphQL API
See link:graphql[/graphql
directory] for Node.js GraphQL API server example using link:https://www.npmjs.com/package/@neo4j/graphql[@neo4j/graphql
]
=== Feedback
Feel free to submit issues or pull requests for improvement on this repository.