This document mainly introduces the usage of the movie demo.
After logging in, click "Create Graph Project", select the movie dataset, fill in the graph project configuration, and the system will automatically complete the creation of the Movie scenario graph project.Other scenarios can also be created in the same manner.
Movie:
Label | Type | Description |
---|---|---|
movie | Vertex | Represents a specific movie, such as "Forrest Gump". |
person | Vertex | Represents a person, who may be an actor, director, or screenwriter for a movie. |
genre | Vertex | Represents the genre of a movie, such as drama, horror. |
keyword | Vertex | Represents some keywords related to the movie, such as "save the world", "virtual reality", "subway". |
user | Vertex | Represents a user who watches movies. |
produce | Edge | Represents the relationship between the producer of a movie. |
acted_in | Edge | Represents the relationship between actors and the movies they have appeared in. |
direct | Edge | Represents the relationship between a movie and its director. |
write | Edge | Represents the screenwriting relationship of a movie. |
has_genre | Edge | Represents the genre classification of a movie. |
has_keyword | Edge | Represents some keywords of a movie, which are more specific labels for classification. |
rate | Edge | Represents the rating given by a user to a movie. |
Query all actors of the movie 'Forrest Gump' and return the subgraph composed of the movie and the actors.
MATCH (m:movie {title: 'Forrest Gump'})<-[:acted_in]-(a:person) RETURN a, m
Query all actors of the movie 'Forrest Gump' and list the roles they played in the movie.
MATCH (m:movie {title: 'Forrest Gump'})<-[r:acted_in]-(a:person) RETURN a.name,r.role
Query all movies rated below 3 by Michael.
MATCH (u:user {login: 'Michael'})-[r:rate]->(m:movie) WHERE r.stars < 3 RETURN m.title, r.stars
Query users who have the same dislike of movies as Michael, where the standard for dislike is a rating of less than three.
MATCH (u:user {login: 'Michael'})-[r:rate]->(m:movie)<-[s:rate]-(v) WHERE r.stars < 3 AND s.stars < 3 RETURN u, m, v
Recommend movies to Michael by first finding users who dislike the same movies as Michael, and then filtering out the movies that these users like.
MATCH (u:user {login: 'Michael'})-[r:rate]->(m:movie)<-[s:rate]-(v)-[r2:rate]->(m2:movie) WHERE r.stars < 3 AND s.stars < 3 AND r2.stars > 3 RETURN u, m, v, m2
Query the movies that Michael's friends like.
MATCH (u:user {login: 'Michael'})-[:is_friend]->(v:user)-[r:rate]->(m:movie) WHERE r.stars > 3 RETURN u, v, m
By querying the movies that people who gave 'Forrest Gump' a high rating also like, recommend similar movies to users who like 'Forrest Gump'.
MATCH (m:movie {title:'Forrest Gump'})<-[r:rate]-(u:user)-[r2:rate]->(m2:movie) WHERE r.stars>3 AND r2.stars>3 RETURN m, u,m2