Внедрение системы для эффективного поиска товаров на моем сайте

У меня есть список, скажем, из миллиона продуктов. Теперь, когда пользователь на моем веб-сайте что-то вводит, мне нужно показать ему некоторые соответствующие продукты для помощи. Поиск должен быть быстрым. Я думаю, что реализация trie мне подойдет.

Но меня смущает сама идея реализации. Мне нужно, чтобы дерево всегда было готово, чтобы я мог мгновенно искать и показывать результат. Если я начну вставлять элементы при вызове функции javascript, это займет слишком много времени.

Может ли кто-нибудь предложить мне, что мне не хватает? Моя цель — показать быстро из списка МИЛЛИОНОВ

Спасибо :)


person Prashant Singh    schedule 11.12.2011    source источник
comment
Обычный способ решить эту проблему — иметь таблицу базы данных с миллионами строк и надлежащий индекс для нее. Как только пользователь вводит текст, выполняется запрос Ajax, и соответствующие продукты извлекаются через SQL и отправляются клиенту для отображения. Есть ли что-то, что говорит против этого подхода?   -  person Tomalak    schedule 11.12.2011
comment
хм... тогда я сделаю то же самое :)   -  person Prashant Singh    schedule 11.12.2011


Ответы (1)


Допустим, у вас есть боковая панель справа, где нужно показать соответствующие продукты.

Пользователь вводит поиск, и справа отображаются только первые X товаров (скажем, первые 50 товаров). Также внизу этого списка будет ссылка «Показать больше продуктов». Твиттер, например, использует этот подход.

Даже если доступно 1 миллион продуктов, пользователю не нужно видеть их все одновременно, поэтому, выполняя запрос Ajax для а) первых X продуктов и б) общего количества продуктов (чтобы вы знали, есть ли Ссылка «Показать больше» обязательна) идеально.

Когда пользователь нажимает «Показать больше», вы будете отображать другие продукты X и так далее.

person alessioalex    schedule 11.12.2011
comment
Эй, я реализовал то же самое для своей панели поиска. Но проблема в том, что запрос AJAX занимает у меня около 1,5 с, чтобы получить результат. Я думаю, что все печатают быстрее, так что это бесполезно ?? Есть ли причина вялого ответа?? вот это buyhatke.com/search.php - person Prashant Singh; 12.12.2011
comment
Вам необходимо оптимизировать серверную часть (и базу данных). - person alessioalex; 12.12.2011
comment
Даже если бы я просто напечатал Hello со стороны своего сервера, это заняло бы у меня 1,3 с, это слишком много. не знаю почему :( - person Prashant Singh; 12.12.2011
comment
Тогда это проблема с вашим сервером, извините. - person alessioalex; 12.12.2011