Я использую php laravel для создания веб-приложения и использую algolia в качестве службы поиска. Однако я не могу заставить algolia возвращать результаты, основанные на сводных таблицах и сторонних идентификаторах в других таблицах. Так что мой вопрос, правда ли, что на данный момент algolia не поддерживает сводные и реляционные таблицы? Или я не понимаю это правильно, и это полностью моя вина?
заранее большое спасибо
Поисковые системы изначально не предназначены для обработки отношений: это то, что базы данных делают хорошо, но это требует больших затрат во время запроса.
По соображениям производительности движок Algolia не поддерживает такие отношения. Поэтому лучший способ — денормализовать ваши данные, прежде чем отправлять их в Алголию.
Пример:
У тебя есть users(id, name)
& posts(id, author_id, content)
SQL таблица, и вы хотите искать в сообщениях, отображая как содержание сообщения, так и имя автора.
Вы должны сделать JOIN
на вашей стороне, чтобы решить имя автора и нажать одну { "objectID": 42, "content": "...", "author_name": "<fetched from users table>" }
возражать против Алголии.
Других решений пока нет …