Как сохранить критерии поиска или результаты поиска? - PullRequest
3 голосов
/ 07 января 2010

У меня есть сайт с объявлениями php (в основном), и в настоящее время я использую MYSQL в качестве базы данных. Позже я буду использовать SOLR или, возможно, Sphinx в качестве «поисковой системы».

Я хочу, чтобы пользователи могли просматривать «результаты» поисков, которые они выполняли ранее, но я не знаю, с чего начать ...

Как это сделать?

В настоящее время у меня есть форма, которая заполняется, и при отправке php просто проверяет таблицу mysql, чтобы увидеть, есть ли совпадения.

Должен ли я сохранять «Критерии поиска» и выполнять новый поиск каждый раз, когда пользователи нажимают на один из своих предыдущих поисков, или мне следует сохранять результаты? Я предпочел бы сделать новый поиск, потому что новые элементы могут быть вставлены с момента последнего поиска!

Если вам нужно больше информации, просто дайте мне знать, и я обновлю этот вопрос.

Спасибо

Ответы [ 4 ]

2 голосов
/ 07 января 2010

Ну ... если вы в основном говорите о "сохраненных поисках", я сейчас делаю нечто подобное, так что у меня есть отдельная таблица, где ....

сохраненный_поиск_ (основной) | user_id (иностранный) | имя_поиска | критерии1 | критерии2 | критерии3 ... и т. д.

Таким образом, теперь я могу отображать пользователю список сохраненных поисков, которые они создали, и таблица хранит критерии, которые были частью этого поиска. Затем я могу использовать эти сохраненные критерии для запуска сохраненного поиска в любое время.

Это помогает?

1 голос
/ 07 января 2010

Используйте параметры строки запроса ($_GET) для формы поиска.Затем пользователь может добавить в закладки поиск.Если вы хотите, вы можете создать функцию закладок в вашем приложении, но это действительно не нужно.

Если вы беспокоитесь о производительности, убедитесь, что настройки кэша вашей базы данных настроены правильно, и что вы нене пишите слишком часто на стол.MySql хорошо справится с кэшированием.

0 голосов
/ 07 января 2010

Сохранить критерии поиска. Это довольно очевидно, как если бы данные изменились, пользователи получат старые результаты. И рассмотрите пространство, которое результаты могут занять через некоторое время:)

Я бы также подумал о сохранении критериев поиска, а не фактического запроса. Если вы измените базу данных, сохраненные поиски по-прежнему будут работать, так как вам нужно обновить механизм генерации запросов, но вы, скорее всего, забудете обновить каждый сохраненный запрос.

0 голосов
/ 07 января 2010

Вы уже сказали это: если пользователи должны видеть новые результаты старых запросов, вам придется каким-то образом сохранять параметры поиска и повторно выполнять поиск, когда пользователи его запрашивают.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...