Have a datatype of song_tag that connects a Song to a Tag.
Have a datatype of favourite_song that connects a Song to a User.
To establish the top 3 Tags for the user, first load all of the User’s favourite songs, then do a search for song_tags [where the Song is in the list of users favourite songs]: grouped by ‘Tag’, with an aggregation of ‘Count’: sorted by Count, items until 3.
Search for song_tags
[Song is in users fav songs)
Group by Tag
[with aggregation of Count]
Sorted by Count
[descending ‘yes’]
Items until 3