У меня есть проблема разработки веб-приложения, для которой я разработал одно решение, но я пытаюсь найти другие идеи, которые могли бы обойти некоторые проблемы с производительностью, которые я вижу.
постановка задачи:
- пользователь вводит несколько ключевых слов / токенов
- приложение ищет совпадения с токенами
- нужен один результат для каждого токена
- то есть, если в записи 3 токена, мне нужен идентификатор записи 3 раза
- ранжировать результаты
- назначить X очков за совпадение токена
- сортировка идентификаторов записей по точкам
- если значения точек совпадают, используйте дату для сортировки результатов
Что я хочу сделать, но не понял, это отправить 1 запрос, который возвращает что-то похожее на результаты in (), но возвращает дублированный идентификатор записи для каждого совпадения токена для каждого идентификатора записи. проверено.
Есть ли лучший способ сделать это, чем то, что я делаю, - использовать несколько отдельных запросов, выполняющих один запрос на каждый токен? Если да, то как проще всего это реализовать?
редактировать
Я уже разбил токены на записи, так что, например, «see spot run» имеет идентификатор записи 1 и три токена, «see», «spot», «run», и они находятся в отдельной таблице токенов, с соответствующими им идентификаторами записей, поэтому таблица может выглядеть так:
'see', 1
'spot', 1
'run', 1
'run', 2
'spot', 3