URL при поиске

Вопросы об установке, настройке и работе самого фреймворка

URL при поиске

Сообщение AndrewWB » 30 ноя 2008, 15:53

Кто как организовывает поиск на сайте?
В сессиях хранить не хочется запросы поиска, в гетом передавать - не принимает... Прописать по типу /param/param2/param3/
как-бы вопрос что сделать с русским алфавитом?
----------------------
Изображение

http://openim.com.ua/ - Обои для рабочего стола 3000+ (поиск по цвету, мобильный, аватар)
Аватара пользователя
AndrewWB
 
Сообщения: 129
Зарегистрирован: 29 июн 2008, 12:07
Откуда: Киев

Re: URL при поиске

Сообщение Hitman » 30 ноя 2008, 15:56

так а чего он гетом не принимает? Ну отправь постом. Обычная форма, отправил постом, пост сделал тебе что-то вроде LIKE %Word% и вернул тебе массив.. Какие проблемы?
Hitman
 
Сообщения: 52
Зарегистрирован: 14 фев 2009, 10:57

Re: URL при поиске

Сообщение AndrewWB » 30 ноя 2008, 16:01

а постраничная пагинация? ))) тоже постоянно пост отправлять?

/resumes/search/?s=тест

такой формат не катит...
----------------------
Изображение

http://openim.com.ua/ - Обои для рабочего стола 3000+ (поиск по цвету, мобильный, аватар)
Аватара пользователя
AndrewWB
 
Сообщения: 129
Зарегистрирован: 29 июн 2008, 12:07
Откуда: Киев

Re: URL при поиске

Сообщение taral » 30 ноя 2008, 16:13

а постраничная пагинация? ))) тоже постоянно пост отправлять?

/resumes/search/?s=тест

такой формат не катит...

Была у меня подобная проблема. Решил ее 2-мя способами.
С помощью сессий.
И записывая текст поиска в базу. и отдавая id этой записи.
/resumes/search/id2345
Во втором варианте появляется прикольная функция. Можно узнать статистику, кто что ищет у вас на сайте=)
Но правда элегантного решения я так и не нашел.
Можно включить обычный URL.
в конфиге
Код: Выделить всё
$config['enable_query_strings'] = FALSE;
$config['controller_trigger'] = 'c';
$config['function_trigger'] = 'm';

Но сам так не делал. Что-то руки не дошли
Аватара пользователя
taral
 
Сообщения: 166
Зарегистрирован: 03 ноя 2008, 21:01

Re: URL при поиске

Сообщение AndrewWB » 30 ноя 2008, 16:16

второй вариант по-моему действует полностью на весь сайт. Тогда все нормальные Урлы к чёрту ))
----------------------
Изображение

http://openim.com.ua/ - Обои для рабочего стола 3000+ (поиск по цвету, мобильный, аватар)
Аватара пользователя
AndrewWB
 
Сообщения: 129
Зарегистрирован: 29 июн 2008, 12:07
Откуда: Киев

Re: URL при поиске

Сообщение taral » 30 ноя 2008, 17:19

второй вариант по-моему действует полностью на весь сайт.

Сам не пробывал. Но по идее можно использовать не на весь сайт.
С помощью этой функции
Код: Выделить всё
$this->config->set_item('item_name', 'item_value');
Можно изменять значения конфиг файла.
Хоть в мануале написано что оно потом сохраняет изменения в конфиг файле, на практике это не произошло. Да и не удивительно. Я вижу только 1 способ измениения их в конфиге. Открывать файл конфига. С помощью регулярок находить что нужно изменить и сохранять.
Моя идея такова. В том месте где нужен поиск динамически изменяй конфиг. В других местах не трогай его.
Если решиш так сделать. Напиши вышло ли. Поскольку сам я так не пробывал.
Аватара пользователя
taral
 
Сообщения: 166
Зарегистрирован: 03 ноя 2008, 21:01

Re: URL при поиске

Сообщение Ladygin » 30 ноя 2008, 17:39

А почему вас не устраивает url такого вида
/resumes/search/строка поиска
Строку поиска кодируем функцией urlencode().

А что бы получить такой url нужно отправить строку поиска на сервер, обработать её и перенаправить на адрес указаный выше.
И дальше можно и листалку по страницам прикрутить и т.д.
Coolweb.su
Здесь я слушаю музыку слушать mp3
Аватара пользователя
Ladygin
 
Сообщения: 72
Зарегистрирован: 30 май 2008, 06:13
Откуда: Псков

Re: URL при поиске

Сообщение taral » 30 ноя 2008, 18:24

Код: Выделить всё
А почему вас не устраивает url такого вида
/resumes/search/строка поиска
Строку поиска кодируем функцией urlencode().

Кажется так не будет работать. кодигнитер допускает в URL очень ограниченный набор символов.
И % туда не входит. Хотя могу быть не прав. Проверять не хочется. Если кому не лень проверьте пожалуйста.
Аватара пользователя
taral
 
Сообщения: 166
Зарегистрирован: 03 ноя 2008, 21:01

Re: URL при поиске

Сообщение AndrewWB » 30 ноя 2008, 20:15

т.е. отправляем постом, перехватываем, кодируем и перенаправляем?
----------------------
Изображение

http://openim.com.ua/ - Обои для рабочего стола 3000+ (поиск по цвету, мобильный, аватар)
Аватара пользователя
AndrewWB
 
Сообщения: 129
Зарегистрирован: 29 июн 2008, 12:07
Откуда: Киев

Re: URL при поиске

Сообщение taral » 30 ноя 2008, 20:39

т.е. отправляем постом, перехватываем, кодируем и перенаправляем?

Я так понял.
При поиске мы отправляем данные постом. Это понятно.
Там мы юрлкодируем строку и загружаем страницу с результатами. И в ссылки навигации по страницам вставляем еще и кодированую строку.
Типа ссылка на вторую страницу будет вроде:
Код: Выделить всё
сайт/page/2/%Hj%h%

Тут вопрос стоит в том. Позволит ли кодигнитер символы % в строке.
Аватара пользователя
taral
 
Сообщения: 166
Зарегистрирован: 03 ноя 2008, 21:01

Re: URL при поиске

Сообщение kosenka » 30 ноя 2008, 20:51

я взял пример с vbulletin. на сколько я понял, он делат поиск, результаты (id записей) загоняет в "таблицу поиска" и уже по этим найденным id выдает результаты поиска.
ну и решился так же сделать:
1) если нам передали search_id -> пункт 3)
2) если же нам НЕ передали search_id
2.1.) делаем поиск
2.2.) создаем запись в "таблице поиска" ->получаем search_id -> далее пункт 3)
3) лезем в "таблицу поиска" ,выбираем запись=search_id

Что-то типа этого. Минус я вижу только в одном, пункт 2.1.) , он может быть "долгоиграющим", за то последующие "переходы по страницам" выполняются быстро. главное передавать search_id.
Аватара пользователя
kosenka
 
Сообщения: 59
Зарегистрирован: 07 ноя 2008, 04:13

Re: URL при поиске

Сообщение AndrewWB » 30 ноя 2008, 21:09

причём здесь ИД поиска ))) нет желания писать хистори поиска засорять базы данных... Нет нужды. Вопрос не в этом был.

Не канает урленкод :( Ибо все стандартные функции редиректа его обратно конвертят... т.е. сгенерировал урл нужный, redirect($URL) и в итоге редиректит с декодированным значением ((
----------------------
Изображение

http://openim.com.ua/ - Обои для рабочего стола 3000+ (поиск по цвету, мобильный, аватар)
Аватара пользователя
AndrewWB
 
Сообщения: 129
Зарегистрирован: 29 июн 2008, 12:07
Откуда: Киев

Re: URL при поиске

Сообщение taral » 30 ноя 2008, 21:39

причём здесь ИД поиска ))) нет желания писать хистори поиска засорять базы данных... Нет нужды. Вопрос не в этом был.

Ну id вот причем.
Мы делаем запрос. Постом передаем скрипту строку запроса. Там ее записываем в базу. И получаем id записи.
И формируем ссылки навигации по страницам таким образом.
сайт/контроллер/функция/страница/id_запроса
пользователь переходит по ссылке. мы делам в базу запрос и получаем строку по которой он искал.
То что храним в базе я не вижу ничего плохого. Сесси кодигнитер тоже советует в базе хранить. На это есть одна причина важная (сейчас я не про это говорю потому упущу).
На счет засорения. А кто мешает чистить устаревшие записи? Просто добавляем еще одно поле кроме id и текста. время запроса. И чистим запросы у которых время запроса было давно. Лично я склоняюсь именно к этому способу.
Вопрос не в этом был.

Мне показалось что вопрос звучал примерно так "как реализовать поиск с навигацией по страницам".
Аватара пользователя
taral
 
Сообщения: 166
Зарегистрирован: 03 ноя 2008, 21:01

Re: URL при поиске

Сообщение kosenka » 30 ноя 2008, 21:43

AndrewWB писал(а):причём здесь ИД поиска ))) нет желания писать хистори поиска засорять базы данных... Нет нужды. Вопрос не в этом был.


Как раз таки, как мне кажется, вопрос был ясно озвучен "Кто как организовывает поиск на сайте?"
Я описал как у меня организован поиск. В свое время тоже занимался урленкод/урлдекод и т.д. и т.п. , не понравилось. Ну а то что хистори поиска хранится в базе, что в этом плохого?
Если не нравится хранить в базе, можно хранить в сессии и не заниматься урленкод/урлдекод. Зачем себе усложнять задачу, если можно обойтись "малой кровью"?
Аватара пользователя
kosenka
 
Сообщения: 59
Зарегистрирован: 07 ноя 2008, 04:13

Re: URL при поиске

Сообщение AndrewWB » 30 ноя 2008, 21:50

Я уже написал, мне не нужен этот метод... Мне нужен конкретный, который обсуждается... Это передача русских слов в урле... По поводу метода по ИД - для поисковиков этот способ не есть хороший, т.к. поисковик учитывает совпадения слов с запроса со словами в УРЛ.
----------------------
Изображение

http://openim.com.ua/ - Обои для рабочего стола 3000+ (поиск по цвету, мобильный, аватар)
Аватара пользователя
AndrewWB
 
Сообщения: 129
Зарегистрирован: 29 июн 2008, 12:07
Откуда: Киев

Re: URL при поиске

Сообщение taral » 30 ноя 2008, 21:58

Я уже написал, мне не нужен этот метод... Мне нужен конкретный, который обсуждается... Это передача русских слов в урле... По поводу метода по ИД - для поисковиков этот способ не есть хороший, т.к. поисковик учитывает совпадения слов с запроса со словами в УРЛ.

А не проще составить карту сайта для поисковиков?
Да и обычно информация на сайте предоставляется не только в виде поиска. А еще просто. В смысле что можно просто ходить постранично. И тут поисковики спокойно все попрасят.
Может я что-то не понимаю. Но зачем так стараться что бы поисковики могли "искать на твоем сайте". Я вообще на аяксе поиск обычно делаю. А тут уж точно поисковики ничего не найдут (не считая гугла, слышал у них есть какой-то механизм, но он работает еще не совсем коректно).
А ты попробывал тот вариант что я раньше сказал?
Сам не пробывал. Но по идее можно использовать не на весь сайт.
С помощью этой функции

Код: Выделить всё
$this->config->set_item('item_name', 'item_value');

Можно изменять значения конфиг файла.
Хоть в мануале написано что оно потом сохраняет изменения в конфиг файле, на практике это не произошло. Да и не удивительно. Я вижу только 1 способ измениения их в конфиге. Открывать файл конфига. С помощью регулярок находить что нужно изменить и сохранять.
Моя идея такова. В том месте где нужен поиск динамически изменяй конфиг. В других местах не трогай его.
Если решиш так сделать. Напиши вышло ли. Поскольку сам я так не пробывал.
Аватара пользователя
taral
 
Сообщения: 166
Зарегистрирован: 03 ноя 2008, 21:01

Re: URL при поиске

Сообщение AndrewWB » 30 ноя 2008, 22:34

это позволяет увеличить количество страниц на сайте )) если есть какая-то хистори открытая по поисковым словам... В общем у меня не проблема втом, что заказчик так хочет...
----------------------
Изображение

http://openim.com.ua/ - Обои для рабочего стола 3000+ (поиск по цвету, мобильный, аватар)
Аватара пользователя
AndrewWB
 
Сообщения: 129
Зарегистрирован: 29 июн 2008, 12:07
Откуда: Киев

Re: URL при поиске

Сообщение kosenka » 30 ноя 2008, 22:42

AndrewWB писал(а): что заказчик так хочет...

сочуствую. тогда остается сделать так как писали выше topic360.html#p2445
Аватара пользователя
kosenka
 
Сообщения: 59
Зарегистрирован: 07 ноя 2008, 04:13

Re: URL при поиске

Сообщение taral » 30 ноя 2008, 22:44

что заказчик так хочет...

Ааа ну тогда другое дело.
Аватара пользователя
taral
 
Сообщения: 166
Зарегистрирован: 03 ноя 2008, 21:01

Re: URL при поиске

Сообщение Big_Shark » 01 дек 2008, 02:23

с руским алфавитом ничего делать не нужно его прекрастно понимают браузеры и тд )
Отвечу на ваши вопросы по CodeIgniter и Kohana3
Благодарности принимаются тут: 41001216991355 (ЯД)
Big_Shark
Модератор
 
Сообщения: 1307
Зарегистрирован: 03 фев 2009, 02:12
Откуда: Владивосток

След.

Вернуться в Общие вопросы по фреймворку

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 2