Drupal Русскоязычное сообщество
Добрался до поиска. А он не работает, вообще.
Модуль search присутствует и включен.
Drupal версии 4.7.
При вводе в форму поиска слов, заведомо существующих на сайте — выдает:
ваш поиск не принес результатов.
Подозреваю, может с кодировками что, т.к. при выполнении запроса внизу (в строке статуса)
мелькают крокозяблы угловато-квадратных форм.
В то же время, числа и английские слова тоже не находит.
Комментарии
Может быть Вы ниразу не запускали cron.php?
—
http://drupal5.ru — информация для друпателей
качественные ответы только на качественные вопросы
Да, точно, не запускал.
Сейчас запустил его через wget.
Он долго думал, потом выдал ошибку:
Fatal error:
Maximum execution time of 240 seconds exceeded in /usr/local/apache/public_html/msu/modules/search.module on line 362
Посмотрел этот модуль, там функция:
/**
331 * Simplifies a string according to indexing rules.
332 */
333 function search_simplify($text) <
334 // Decode entities to UTF-8
.
360 // With the exception of the rules above, we consider all punctuation,
361 // marks, spacers, etc, to be a word boundary.
362 $text = preg_replace(‘/[‘. PREG_CLASS_SEARCH_EXCLUDE . ‘]+/u’, ‘ ‘, $text);
363
364 return $text;
365 >
Что делать?
Может потому что сайт уже массивный (наработано около 2000 нод, текстового контента очень много).
Попробуй уменьшить количество объектов для индексации в admin/settings/search «Indexing throttle»
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
ОК, спасибо, сейчас попробую.
Как я посмотрел, он часть сайта проиндексировал, но не все.
А может увеличить это Maximum execution time, где искать этот параметр?
Спасибо, вроде разобрался с этим.
Добился, чтобы не вываливался в ошибку только при значении 10, тогда как по умолчанию там было 100
Теперь поставил в сron почаще, думаю до вечера весь сайт проиндексирует.
Источник
Drupal Русскоязычное сообщество
Просмотр форума на предмет «Не работает поиск» показал. что многие сталкивались с тем, что внутренний поиск drupal не работает или работает криво.
Но решений, кроме как использовать другой (сторонний) поиск, никто так и не предложил.
Может все-таки найдется кто знающий на сайте, что разобраться в проблеме.
Ситуация следующая.
Поиск на сайте находит не все ноды.
Часть нод ищутся без проблем, остальные поиск не «через раз».
Что делал:
— переиндексирование сайта — несколько раз, не помогло
— отключение и удаление модуля Search, с последующим включением и переиндексированием сайта — не помогло.
Полез в базы данных.
Модуль Search создает и работает с 4-мя таблицами.
search_dataset — содержит все ноды с их индексируемым содержимым (в таблице есть все ноды)
search_index — содержит все слова и номера нод, в которых эти слова встречаются (в таблице есть все слова и ноды, даже те, по которым на сайте поиск выдает нулевой результат. т.е., например, делаю поиск по «JK17» — на сайте соответствий не находится, ищу «JK17» прямо в таблице search_index — такая запись есть с верным номером ноды)
search_node_links — пустая таблица
search_total — в этой таблице хранится «вес» каждого слова (если я правильно понял). И вот тут «самое интересное»! По идее, в этой таблице должны быть все слова, которые есть и в таблице search_index. В реальности оказалось, что большинства слов (как раз из тех нод, что «плохо ищутся») в этой таблице нет! Как будто после какого-то слова (ноды) в эту таблицу перестали заноситься данные. Для эксперимента занес в эту таблицу запись «JK17» с весом 0.3 (взятым с потолка) — тут же поиск на сайте стал находить эту ноду
Может кто сталкивался и решал данную проблему — из-за чего в таблицу search_total может перестать заноситься данные?
Буду благодарен любым идеям и отдельное спасибо тем, кто дочитает до конца
- Drupal7
- search
- Есть вопрос
- Решение проблем
- Блог
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Комментарии
полевые тесты показали, что в таблицу search_total заносятся слова из первой тысячи нод. точнее первые 999 нод.
слова из 1000 ноды и выше в таблицу уже не попадают
при этом в таблицах search_dataset и search_index такого глюка нет — на сайте более 3000 нод, в этих таблицах данные из всех нод, а вот в search_total только 999
это такой глюк Drupal7? (7.39)
есть большой сайт на Drupal6, там такого глюка не наблюдалось, поиск работает вполне прилично
бывают в жизни «красивые» совпадения.
оказалось, глюк поиска никак с цифрой 999 не завязан.
просто на сайте было 999 «полупустых» коротких нод, а с тысячной ноды были заведены большие тексты.
в результате по крону первые 999 поиском обработались нормально (стояла обработка по 100 нод за запуск крона), а начиная с тысячной ноды крон начинал сбоить — при запуске через некоторое время выдавал страницу ошибки 500, при повторном запуске ругался, что уже запущен и прочее.
разбор модуля search показал, что таблицы search_dataset и search_index заполняются в одной «точке кода», а таблица search_total — в другой. т.е. текст разбивается на слова в массив, который заносится в таблицу search_index, потом идет кусок «стороннего» кода, а потом возвращаются к массиву слов и заполняют search_total
при зависании крона первый кусок кода успевал выполняться, а вот второй — нет.
в результате друпал считал, что ноды уже проиндексированы поиском, поскольку есть в таблице search_index, но результат поиска не мог выдать, поскольку их нет в search_total.
почему нельзя было заполнять все три таблицы в одном месте кода — мне не понятно.
в итоге — очистил таблицы поиска, уменьшил количество индексируемых нод за запуск крона — все нормально занеслось.
Источник
Drupal Русскоязычное сообщество
НЕ работает поиск. То есть чтобы не вбивалось — ничего не ищется и пишется что не найдено.
Никаких настроек в модуле я не менял.
Что посоветуете?
- Drupal5
- Блог
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Комментарии
Сделайте индексацию (/admin/settings/search) и настройте запуск cron на сервере.
Можно запустить его и вручную /admin/logs/status/run-cron
Вы можете запустить выполнение регулярных процедур (cron) вручную.
ПРИ ПОПЫТУЕ ЗАПУСТИТЬ DRUPAL ГРУЗИТСЯ C 1 МИНУТУ И ПОКАЗЫВЕТСЯ АБСОЛЮТНО ПУСТОЕ ОКНО
ПРИ ПОПЫТКИ ИНДЕКСАЦИИ ОН ВСЕ ВРОДЕ ИНДЕКСИРУЕТ А В КОНЦЕ ПОКАЗЫВАЕТ МНЕ ЧТО «ПРОИНДЕКСИРОВАНО 0% ИЗ 3789 ЗАПИСЕЙ»
КРОМЕ ТОГО НА /admin/logs/status/ ОБНАРУЖИЛ СЛЕДУЮЩУЮ НАДПИСЬ
Веб-сервер Apache
Не удалось определить тип и версию используемого веб-сервера. Drupal может работать неправильно.
Воде запустился (наверно с PHP памятью проблемы были)
а В ИНДЕКСАЦИИ поиска написал следуюющее «2% сайта проиндексировано. Еще 3633 элемента для индексации.» Drupal что постепенно индексирует?
Drupal что постепенно индексирует?
Ну да. Вот тут: admin/settings/search задается количество нод, индексируемых за один хапуск планировщика.
А какое правильное?? я ставил и 500 и 10 node — все одно.
у меня 4000 node и он мне даже по названию фильма ничего не выдает
А где стаиться расписание поланировщика cron ? или это автоматом?
Правильное значение – такое, чтобы за один запуск скрипта проиндексировалось нужно количество нод. Чем больше максимальное время выполнения скрипта на твоем хостинге, тем больше можешь установить эту цифру. А вообще, как тебе уже рекомендовали выше, можно просто нужное количество раз зайти на эту страницу: /admin/logs/status/run-cron и данные должны будут проиндексироваться.
ВСЕ , ТЕПЕРЬ ПОНЯТНО .
СПС !
А ЕСЛИ У МЕНЯ 10 000 НОД, ТО ПРИ МАКСИМАЛЬНОМ КОЛИЧЕСТВЕ ИНДЕКСАЦИИ В 500 НОД МНЕ НУЖНО 20 РАЗ КРОН ЗАПУСКАТЬ? ИЛИ Я ОПЯТЬ ЧТО ТО НЕ ПРАВИЛЬНО ПОНЯЛ?
Ты всё правильно понял. Только это у тебя при запуске сайта, если ты его переводишь на Друпал с другого движка, будет 10000 нод, потом достаточно будет, чтобы количество индексируемых за один запуск крона нод было больше количества нод, появившихся между двумя запусками крона. То есть, если ты запускаешь крон раз в день и каждый день у тебя появляется 50 новых нод, то индексации 200 нод за один запуск крона будет более чем достаточно.
У меня крон запускается раз в час, за один запуск индексируется 200 нод.
СпС!
И вот еще индексация локальная, то есть кроном влияет ли как то на индексацию работов поисковиков?
спс
PS Решил проблему так — скачал модуль poormanscron и каждые 60 минут теперь меня индексирует. вручную cron не запускался нормально
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
в версии 5.0 + русификация + модуль search
не срабатывает кнопка «Переиндексировать сайт»
после отработки все равно пишет:
Статус индексации
0% сайта проиндексировано. Еще 1 элемент для индексации.
соответственно поиск по сайту не срабатывает тоже.
и что я не так делаю.
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
А может это трабла кривой русификации — у меня на двуязычном сайте в аглицком и-фейсе все ок, а в русском звасегда 0%.. Причем крон гоняется кроном
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
в версии 5.0 В какой-то из давних (и, кажется, не моих
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Что лучше — поправить только эту переменную (тогда плс. ткните в нее носом для 5.х и для 4.7 если не затруднит) или презакачать русификацию?
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Если сами не правили русификацию, то лучше закачать последнюю версию перевода.
Источник
Drupal Русскоязычное сообщество
Подскажите, пожалуйста, по работе поиска на сайте.
Был перенос сайта с одного сервера на другой, настройки нового сервера были сделаны максимально идентичные старому серверу (но, конечно, может что-то и пропустили). И вот после переноса не работает поиск на сайте — на любой запрос «ничего не найдено». Нагугленные материалы все говорят про индексацию сайта, но переиндексация материалов не помогла. Думаю дело в настройках кодировок на сервере, но не могу сообразить куда именно смотреть. Подскажите, пожалуйста.
Комментарии
Тоесть, в админке показывает 100% проиндексировано?
Да, 100%. И никаких ошибок в логах или даже намеков на ошибки. Просто «Ваш поиск не принес результатов» и всё
Ссылку дай на сайт
Сайт сейчас на локальном сервере, со ссылкой будет проблематично. Может так сможете что-нибудь подсказать? Заранее благодарю
Заметил такую вещь: почему-то в таблице search_dataset по всех записях поле data пустое, а на предыдущем сервере там текст. Что бы это могло быть.
Поизучал код. В файле «modules/search/search.module» содержимое переменной $text пропадает после выполнения строки 367:
Если правильно понимаю, то в этой строчке всякие точки, запятые и прочие знаки должны превращаться в пробелы. Осталось только понять, что мешает выполнению и как это починить
Пока что закомментировал эту строчку, индексация и поиск хоть как-то заработали. Но всё же хотелось бы понять, что мешает её работе. У кого есть какие идеи?
Источник
Drupal Русскоязычное сообщество
на локале не работал, на 2 хостинга поставил не работает!
В чём причина, как исправить? ДЖовольно актуально блин
Комментарии
особенно актуально на мастерхосте.
На drupal.htdogs.ru эта тема активно обсуждалась. Но до меня долго не могло дойти, как её реализовать. Короче, сделала так:
Создала на сервере в папке cgi-bin файл .htaccess со следующими параметрами:
php_value
mbstring.internal_encoding = UTF-8,
mbstring.func_overload = 2
mbstring.http_output = UTF-8
mbstring.func_overload = 2
Всё заработало. Спасибо koyre огромное просто.
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
php_value
mbstring.internal_encoding = UTF-8,
mbstring.func_overload = 2
mbstring.http_output = UTF-8
mbstring.func_overload = 2
в .htaccess папки cgi-bin не дало результатов, по прежнему ничего не ищется, причём если перейти по адресу — admin/settings/search
там указано следующее —
0% сайта было проиндексировано. Остался 1 элемент для индексирования.
Если нажать на кнопку переиндексировать сайт, в конце опять написано тоже самое. может дело в этом?
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
clubwave.ru, у меня тоже на работал сейчас завёлся ))
Как я понял нужно включить правильно cron.php
Это оказалось не простым делом.
Читай здесь:
http://drupal.ru/node/1942
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
А хоть одна категория создана?
Материалы отнесены к категориям?
Кажется без этого не работает.
был модуль trip_search который хоть как-то искал — а теперь его забросили сказав что в друпале 47 все уже есть — вот вопрос — в любой задрыпанной цмс есть поиск по маске — а в друпале как?
Хрен, нету по маске.
Только целиковое слово при точном совпадении, сволочь, ищет.
:))))))))))))
Блин, вся надежда на ноый реализ.
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
что правда так всё ужасно.
можно конечно через яндекс искать, но блин фу..
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Конечно создано. ещё штук 50 огромных статей, индексацию переиндексацию проводил 10 раз. вообще ничего не ищет..
Попробую через .htaccess . и тоже собираюсь на мастерхосте сайты делать.
А в любой цмс и правда поиск есть, причём скажем в джумла даже с подсветкой найденного.. типа яндекс отдыхает
Кстати, вот создал CCK там полей насоздавал, модуль views их видит, сортирует.. а можно ли както организовать поиск по этим полям?
Источник