В настоящее время у меня есть таблица Angular material-ui с настраиваемым фильтром и чипами материалов, которые позволяют выполнять поиск, добавляя несколько ключевых слов.(https://stackblitz.com/edit/angular-material-filter-with-chips). Я хотел бы иметь возможность поддерживать более релевантные результаты запросов пользователя, например,
- , если пользователь вводит
data
, первый результат должен быть Data Science 1
, поскольку data
соответствует названию курса. - , если пользователь вводит
science
и нажимает клавишу ввода, а затем вводит data
, первый результат должен быть Data Science 1
, поскольку он соответствует ви заголовок, и описание курса.
Как бы я изменил предикат фильтра для поддержки этого типа фильтрации?
Я рассматриваю возможность добавления целочисленного поля релевантности для каждогокурс и подсчет каждого курса на основе того, существует ли соответствие названию и описанию, а затем сортировка всех курсов по релевантности где-то в предикате перед возвратом логического значения. Есть ли более надежный способ приблизиться к этому, поскольку для этого потребуется вычислить релевантностьдля каждого добавленного термина запроса и пересчета, если термин был удален, и я предполагаю, что реализация может получить немноговолосатые?
Спасибо!