При попытке искать на русском (русское слово в поле формы поиска) и нажатии кнопки "Search" Друпаленыш ничего не находит
и выдает сообщение:
* warning: htmlspecialchars() [function.htmlspecialchars]: Invalid multibyte sequence in argument in C:\Work\www\drupal\includes\bootstrap.inc on line 857.
* user warning: in C:\Work\www\drupal\modules\dblog\dblog.module on line 147.
* You must include at least one positive keyword with 3 characters or more.
* warning: htmlspecialchars() [function.htmlspecialchars]: Invalid multibyte sequence in argument in C:\Work\www\drupal\includes\bootstrap.inc on line 857.
* user warning: in C:\Work\www\drupal\modules\dblog\dblog.module on line 147.
* You must include at least one positive keyword with 3 characters or more.
* warning: htmlspecialchars() [function.htmlspecialchars]: Invalid multibyte sequence in argument in C:\Work\www\drupal\includes\bootstrap.inc on line 857.
rustemmer поставил по инструкции, сайт периндексировал - та же ситуация.
Нужна идея, в какую сторону дальше копать.
Прошу помощи. Пожалуйста.
Комментарии
rustemmer юзал неделю - снес! У меня он не работал нормально. По некоторым поисковым запросам, сайт белую страницу показывал.
Sphinxsearch
Сервер под Виндой ( Демонов запустить - никак.
Патч там только подсвечивает результаты поиска, без чего прекрасно можно обойтись
McErr, php-mbstring стоит?
[PHP_MBSTRING]
extension=php_mbstring.dll
Есть такое
да знаю я
Прекрасно-не прекрасно, а без патча модуль абы что подсвечивает.
http://ru.wikipedia.org/wiki/Cygwin ?
А виртуалка?
Да это и не главная проблема. Будет ли у вас сфинкс на хостинге?
Не будет (.
Пока ничего не получается.
дак и что нормального поиска под друпал нету?
Кажеца я решил проблему. Отключил dblog и заменил в bootstrap.inc:
<?phpfunction check_plain($text)
{
if(drupal_validate_utf8($text)==TRUE)
{
return htmlspecialchars($text, ENT_QUOTES, 'UTF-8');
}
else
{
return htmlspecialchars('');
}
}?>
Коряво, но работает и ошибок не кажет
P.S.: я PHP не знаю, поэтому на всякий пожарный переместил функцию drupal_validate_utf8 выше check_plain.
P.P.S: хостинг под виндой, Drupal 7
ставьте Solr/Sphinxsearch будет Вам нормальный поиск.
А вот этого делать не стоило.
Solr какбэ только 5.x-1.x-dev
Sphinx тоже не катит - хостинг же...
А что делать-то, никто ж не говорит)
Поставил и настроил Sphinxsearch, сразу возникло кучу проблем с выдачей в поиске частей закрытых от пользователей материалов
Нету в Sphinxsearch проверки может пользователь смотреть данный материал или нет А индексирует он все ноды
заюзал снова! Все работает! Правда пришлось патчить модуль search, думаю это того стоит!
http://drupal.org/project/apachesolr
Так у меня не Apache, а IIS, и к тому же на хостинге за 50 рублей)
Слово Apache здесь является лишь принадлежностью к Apache Software Foundation.
Тогда только rustemmer. Но вы же спрашивали про нормальный поиск Хотя наверно и рустеммера часто хватает.
Сей модуль вообще в заброшенном состоянии, причем автор модуля не отдает его никому на развитие (наверно ЧСВ мешает). Как-то начинал писать модуль для сфинкса под SearchAPI для семерки, но времени как всегда... Если вы на семерке, то попробуйте связку Solr + SearchAPI
Неа, я на 6-ке...
А модуль кривой ага, коннект к сфинксу через сокет ручками делал по примеру старших братьев по разуму
А что за модуль такой?
http://drupal.org/project/sphinx
Ставьте Solr, отлично работает, соблюдает права, можно еще руками указывать, какие типы контента нельзя выдавать в результаты поиска, ну и темизировать можно как обычно.
p.s. Правда, для этого нужен вам VDS, сервер ну или хостинг, на котором Solr можно завести. Я такие видел, гуглите что-то типа "установка Solr на хостинге" - где найдется инструкция по установке, тот и кандидат И ваще, не экономьте на хостинге для Друпала, это моветон
он ещё кривее
Модуль Sphinxsearch патруль сейчас расплямляет
Зато сам модуль Sphinxsearch не прёт последнюю версию апи
именно так
Просто автору модуля наверное некогда. Альтернативы больше по идее и нету никакой? Стандартный друпаловский модуль seach = унылое гавно
Есть еще варианты?
1) Apache Solr - есть модули, пашет отлично
2) Яндекс.Сервер - нет модулей, нужно курить мануалы и делать вывод через XML (если надо темизировать страницу поиска), или делать вывод через стандартную страницу поиска Яндекс.Сервера; ищет еще лучше чем Solr, всетки русский язык для Яндекс.Сервера родной
Поиск (практически любой) не работает под iis при включенных чистых ссылках! Дело в том, что введенная пользователем фраза по-русски заталкивается в url. А реврайт модуль iis делает с ней что-то нехорошее, и на страницу она попадает кракозяблами (если ей еще удается проскочить check_plan). Апач умеет ее в utf-8 пересылать.
Ура! Нашел!
Чтоб это побороть, надо в web.config, в правило реврайта добавить UrlEncode:
Было:
<action type="Rewrite" url="index.php?q={R:1}" appendQueryString="true" />
Стало:
<action type="Rewrite" url="index.php?q={UrlEncode:{R:1}}" appendQueryString="true" />