Как работает поиск?

Главные вкладки

Аватар пользователя Jeremic Jeremic 20 июля 2006 в 13:31

Привет! Расскажите, как работает поиск? А тоя что то не догоняю...
Страница 1 - слово вагоны
Страница 2 - слово вагон
Вводя слово для поиска вагон мы попадаем на страницу 2, а если вагоны, то
на страницу 1. А что нельзя выводить обе страницы? Как правильно задавать запрос в таком случае?
Что трудно в SQL запросе поставить LIKE для поиска не конкретного слова а вхождения? Где добавить эту строку?

И еще вопрос: подскажите где можно редактировать вывод поиска Search. Мне просто нужно следующее:
у меня есть пустые страницы и я хотел бы их не выводить (т.е. надо бы проверить есть ли в них содержимое)
и также подредактировать другие строки вывода.

Буду очень благодарен!

Комментарии

Аватар пользователя Jeremic Jeremic 20 июля 2006 в 17:49

То ли считают что я дурацкие вопросы задаю...
Хорошо, конкртеизирую вопрос: есть url надо добыть по нему контент. Как? (скажите функцию АПИ)

Аватар пользователя kiev1 kiev1 20 июля 2006 в 18:56

вот и у меня та-же беда - короче раз поиск в друпале такой галимый - то интересно хоть как по маске искать?

Аватар пользователя Natalie Natalie 20 июля 2006 в 21:46

О какой версии Друпала идет речь? Вроде для 4.7 поиск сильно изменили.
---
---
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.

Аватар пользователя Nick Nick 21 июля 2006 в 0:27

Если сделать как вы говорите, то нашлось бы еще вагонетки вагончики ... (заметте, это дургие слова,а не падежи!).

На данный момент все поисковики ищут именно по заданому слову, а не по его части во избежини лишних рещультатов (кстати, а в 4.7 маски точно не работают? .. в 4.6 работает ... а 4.7 под рукой нет).
Различные изменения форм слов умеют делать только наши поисковики, например, Яндекс. Кстати, хочу обратить внимание, что совсем не факт, что поиск от этого улучшиться (больше результатов не значит лучше), правда, Яндекс можно попросить не цчитывать формы слова.

Изменение слова по падежам (например) не такая уж и тривиальная задача как может показаться. В первую очередь из-за неформальности языка, а во-вторую из-за объема языка. Впрочем, существуют довольно успешные методики решения этой проблемы (Яндекс же умеет!).

Аватар пользователя Jeremic Jeremic 21 июля 2006 в 5:22

Но я лишь хочу немного изменить формат вывода поиска. Я хочу не выводить ссылки на пустые страницы. Для этого у меня есть урл node/433
он же nid=433. Как мне по этой фигне загрузить контент страницы, что проверить какая она. Какая функция АПИ? Я с идеалогией Друпала по написанию хуков и т.д. не знаком, поэтому не смог найти название функции. ПОдскажите, плиз! Очень, очень, спасибо.

З.Ы. Друпал 4.7. Поиск худо бедно, но работает.

Аватар пользователя moonman moonman 21 июля 2006 в 13:42

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

Пробовал проиндексировать в Админке, не индексирует. ((((

Аватар пользователя moonman moonman 22 июля 2006 в 9:57

Крон вызывается. Всмысле открывается чистая страница (так и должно быть).

Именя пользователей ищутся без проблем, а слова контента не находятся (((

Юзал разный поиск - нифига не ищет.....

Аватар пользователя qman qman 22 июля 2006 в 20:55

для тех кто у кого не работает поиск, необходимо проверить в какой кодировке работает и хранит данные MySQL.
должна быть UTF8

Аватар пользователя moonman moonman 22 июля 2006 в 21:57

Но пользователей он ищет, значит всё с кодировкой БД нормально.

Не ищет сам контент.

Когда жму проиндексировать вручную в Админке - не индексирует вообще.

Выдаёт одно и тоже:

"0% сайта было проиндексировано. Остался 1 элемент для индексирования."

И ещё в Настройка вадётся такое:

"Задания планировщика --
Планировщик заданий не был запущен. Скорее всего, задания планировщика не были настроены на вашей системе. Смотрите справку о работе планировщика заданий."

Ничего не понимаю ((

Аватар пользователя Nick Nick 23 июля 2006 в 2:52

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

Но, то, что "Остался 1 элемент для индексирования." - это очень странно. У вас 1 node на сайте ?

Аватар пользователя qman qman 22 июля 2006 в 22:19

посмотри содержимое таблицы search_index.
Что у тебя там?
По умолчанию кодировка в MySQL latin1 (или другая латиница). Как правило логины пишут в латинице, поэтому у тебя оно и работает.
P.S> Там должны быть слова, которые можно искать
мне для поиска пришлось добавить в my.ini
default-character-set=utf8
и заново проинсталировать drupal.
данныt хранятся в кодировке utf8_general_ci...

Аватар пользователя moonman moonman 23 июля 2006 в 2:58

А что такое "1 node на сайте ?"

Я скачал последнюю версию неделю назад и всё что было в пакете - залил. Ничего не менял и не удалял.

Кстати сейчас увидел что мой title (если открыть html-код) имеет такой странный вид:

<title>Сила РРІРё | РџСѓР±РІРё. Пурдцем.</title>

Аватар пользователя Андрей Осипов Андрей Осипов 20 февраля 2007 в 11:16

Поиск может искать внутри тегов ?
Например - текст в тегах картинок?
Типа ALT или TITLE?
Т.е. - поиск может найти картинку по содержанию текста в ALT или TITLE?
Такое возможно?