How can I keep track of each users disliked items and exclude them from the result in an efficient way

Thank you for answering.

Would this terms filter lookup work for let's say thousands of terms and not just up to 1000. What if I had 10.000-50.000 terms and they were added continuously?

Would a parent/child relationsship be better then and which solution would have the best performance?