Как лучше всего кешировать запросы с учетом строки поиска на фотостоках с API в PHP?
Есть фотостоки с APi типа Unsplash, и у них есть лимиты на запросы к API. Как лучше всего реализовать кеширование на PHP с учетом строки поиска?
Просто кажется, что учитывая как вводят в поиске разные слова, не будет ли слишком много уникальных запросов, которые в итоге сведут на ноль эффект от кеширования? Подскажите, как лучше всего поступить в реализации подобного функционала для того, чтобы уместиться в ограничение лимитов?
Кэшируйте через клиента, исполняя запрос к API из браузера, а результат - отправляйте себе на бэкенд и там - кешируете, группируя одинаковые ответы на различные запросы в единую группу.
Если это невозможно - группируйте поисковые запросы и привязывайте результат к такой группе.
Для отображения - находите группу для запроса и достаёте ответ из кэша этой группы.
Привязка простая: "один-ко-многим": ответID->запросы.
Дополнительно:
Можно проставлять "веса" на каждое слово в запросе и составить свой словарь синонимов, чтобы выдавать релевантные результаты из своего кэша на запросы, которые похожи на предыдущие, но которые не отправлялись ни разу на API фотохостинга.
Иными словами: сделать свой промежуточный поиск до поиска в фотохостинге через API.
спасибо! Сам запрос будет идти через сервер, так как при запросе к АПИ фотостока есть секретный ключ фотостока, который нельзя показывать клиенту.
Правильно ли я уловил мысль: то есть при запросе на апи фотостока группировать кеш по одинаковым результатам, и если результат один и тот же, а запрос разные искать похожие слова расставляя вес исходя из того как похоже слово и как оно часто встречается в запросах с такими же результатами?
запрос к API из браузера, а результат - отправляйте себе на бэкенд и там - кешируете, группируя одинаковые ответы на различные запросы в единую группу.
1 в 1 и даже лучше - хоть на фронте забирай, хоть в бэке при генерации, а главное в большинстве фреймворков это уже давно реализовано