Запрос на сопоставление и ранжирование по столбцам и процентное соответствие

#node.js #postgresql #express #sequelize.js

Вопрос:

Я создаю сайт знакомств, где система будет подбирать людей по интересам.

Система также будет учитывать предпочтения пользователя при сортировке и фильтрации записей. У нас также есть уровень важности для каждого предпочтения, например. Высокий, Средний, Низкий. для сортировки и сопоставления на основе предоставленных предпочтений.

Мы хотим реализовать алгоритм сопоставления, при котором система будет проверять наилучшее возможное соответствие, указанное в данном предпочтении. Если есть записи, найденные по совпадениям, система покажет процент совпадений. Даже если есть один столбец, система сопоставления также должна отображать эту запись.

Вот модель данных

-Ссылка на пользователя

 UserId | Food  |   Activity  |   Movies 
4        Nonveg traveling  Horror
 

-Интерес пользователей

 UserId | Food  |   Activity |  Movies
1         veg       travelling  Horror,Action
2         nonveg trekking    action
3         Veg       football,cricket  comedy
 

Результат сопоставления должен быть таким, как показано ниже,

 UserId | Food   |  Activity |  Movies         |        match percentage  
1         veg       travelling  Horror,Action             50  
2         nonveg trekking    action                        30   
3         Veg       football,cricket  comedy             0
 

Я не могу придумать способ создания запроса, который будет соответствовать нескольким столбцам с условиями ИЛИ и возвращать процент.
Кто-нибудь может помочь? Любая помощь будет оценена по достоинству.