The problem I want to solve is the following:
Given a set of users, each with a set of interests they can specify themselves, find all the pairs of users that share same interests with a threshold of similarity (e.g 50% similar interests). Furthermore some interest categories should hold higher weight than others (i.e be more important towards the threshold).
Currently, I can only think of relational models to solve this, but it feels wrong, and something that will take too long to compute once there are as little as 100 users. With my current knowledge of document based DBs (e.g Mongo) I believe those are not an option, as we would need to cross-reference documents all the time(?). Should I be doing more reading on graph based DBs? Any pointers are welcome.
I am looking for a solution that is balanced in terms of complexity vs performance. Not looking for something that will work with millions of users if that means I have to read tons of research papers, but an approach that will support few thousand users will be sufficient.