Всем привет. Стоит задача разработать интернет магазин по продаже pdf файлов. При добавлении товара, автоматически генерируется 6 поисковых тегов, по которым будет вестись поиск. Пользователь будет вводить строку запроса (типо как в гугл), и ему будет выводится результат поиска. Я сделал две таблице в бд : 1. Таблица с информацией о товаре 2. Таблица поисковых тегов, в которой поля product_id и tag Пользователь вводит запрос, я ищу совпадения в таблице тегов, вытаскиваю оттуда prodcut_id, а затем по product_id вытаскиваю записи с таблице товаров. Но мне кажется, что когда в таблице товаров будет 100 тысяч записей, а в таблице тегов 600 тысяч, то бд будет сильно тормозить, и поиск будет очень долго длится. Проект делаю на Laravel. Подскажите как лучше сделать .
Посмотрите в сторону Sphinx или elasticsearch, lucene - тоже самое что у вас, только заведомо быстрее и даст возможность дополнить не только тегами но и каким-то текстом (кусок из PDF - поисковый набор) - и будет как Гугл))
как в гугл, это полнотекстовый поиск, а это уже надо смотреть в сторону elasticsearch, будет быстрее и релевантнее. Плюс можно помимо придуманных тегов заносить контент pdf в индекс и искать по нему.
Алексей Уколов, Совсем недавно начал использовать это фреймворк. Вы имеете виду просто создать большой массив, а потом использовать метод SaveMany() ? Или в цикле заполнить бд ?