7.6. Co-favorited places

7.6.1. Co-favorited places — users who like x also like y
7.6.2. Co-Tagged places — places related through tags

Figure 7.5. Graph


7.6.1. Co-favorited places — users who like x also like y

Find places that people also like who favorite this place:

  • Determine who has favorited place x.
  • What else have they favorited that is not place x.

Query. 

MATCH place<-[:favorite]-person-[:favorite]->stuff

WHERE place.name = 'CoffeeShop1'
RETURN stuff.name, count(*)
ORDER BY count(*) DESC, stuff.name

The list of places that are favorited by people that favorited the start place.

Result

stuff.namecount(*)
3 rows
0 ms

"MelsPlace"

2

"CoffeShop2"

1

"SaunaX"

1


7.6.2. Co-Tagged places — places related through tags

Find places that are tagged with the same tags:

  • Determine the tags for place x.
  • What else is tagged the same as x that is not x.

Query. 

MATCH place-[:tagged]->tag<-[:tagged]-otherPlace
WHERE place.name = 'CoffeeShop1'
RETURN otherPlace.name, collect(tag.name)
ORDER BY length(collect(tag.name)) DESC, otherPlace.name

This query returns other places than CoffeeShop1 which share the same tags; they are ranked by the number of tags.

Result

otherPlace.namecollect(tag.name)
3 rows
0 ms

"MelsPlace"

["Cool","Cosy"]

"CoffeeShop2"

["Cool"]

"CoffeeShop3"

["Cosy"]