Регистрация
Вход через соцсети
Восстановление пароля

Не работает поиск

Новый топик
Страницы: 1  |  2
18.01.2010, 21:49
Ответить | Цитировать
Гость
Гость

Цитата:
1. Если ничего не ищет, то убедиться, что в системных настройках шаблона указан параметр $ignore_catalogue.

Убедился
Цитата:
2. Если ничего не индексирует, то убедиться, что в коде страниц есть тэг и страницы НЕ возвращают код 404 (должны возвращать код 200).

Индексирует

Системные настройки (раскомментил уже все):
Код:
global $HTTP_HOST;

$ignore_sub = true;
$ignore_cc = true;
$ignore_catalogue = true;

#данная переменная содержит имя домена без www
#$SEARCH_HOST=(substr(strtolower($HTTP_HOST),0,3)=="www"?substr($HTTP_HOST,4):$HTTP_HOST);

#данная переменная содержит имя домена с www
#$SEARCH_HOST=(substr(strtolower($HTTP_HOST),0,3)=="www"?$HTTP_HOST:"www.".$HTTP_HOST);
$SEARCH_HOST=$HTTP_HOST;

if ( get_magic_quotes_gpc() ) {
$search_string = stripslashes($_GET['text']);
}
else {
$search_string = $_GET['text'];
}

$db_search_expression = nc_search_get_db_expression($search_string, $current_catalogue['Language']);

$query_where = "MATCH(a.Title, a.Body) AGAINST('".addslashes($db_search_expression)."' IN BOOLEAN MODE) AND a.URL LIKE 'http://".$SEARCH_HOST."%'";
$query_order = "MATCH(a.Title, a.Body) AGAINST('".addslashes($db_search_expression)."' IN BOOLEAN MODE)";

//*****
//old-style search (deprecated)
$text=FilterText($text,1);

#полнотекстовый поиск с использованием релевантности
$query_where = "MATCH(a.Title,a.Body) AGAINST('".addslashes($text)."') AND a.URL LIKE 'http://".$SEARCH_HOST."%'";
$query_order = "MATCH(a.Title,a.Body) AGAINST('".addslashes($text)."') DESC";

#полнотекстовый поиск без использования релевантности
$query_where = "MATCH(a.Title,a.Body) AGAINST('".addslashes($text)."*' IN BOOLEAN MODE) AND a.URL LIKE 'http://".$SEARCH_HOST."%'";
$query_order = "MATCH(a.Title,a.Body) AGAINST('".addslashes($text)."*' IN BOOLEAN MODE)";

#поиск точного наличия искомой фразы в тексте
$query_where = "(a.Title LIKE '%$text%' OR a.Body LIKE '%$text%') AND a.URL LIKE 'http://".$SEARCH_HOST."%'";
$query_order="a.Title LIKE '%$text%' DESC";


Все об одном, ничего не найдено. Что может быть?
В документации сказано, что при использовании комментариев
Код:
<!-- content --> <!-- /content -->
модуль будет индексировать контент только в пределах данных комментариев. НО!
Цитата:
Если данные тэги не присутствуют в коде страниц, модуль поиска проиндексирует только заголовки страниц.

Значит ли это, что если я не пользуюсь такими коментами в коде, то поиск контент не индексирует (только содержимое тайтлов?).
19.01.2010, 11:49
Ответить | Цитировать
Denis
Denis

Зарегистрирован:
2008-07-15
Сообщений: 666

Посмотрите, в таблице MessageНомерКомпонентаСПоиском есть записи?

Если есть, попробуйте в сис. настройках убрать
AND a.URL LIKE 'http://".$SEARCH_HOST."%'"

Ксю доставляет...
19.01.2010, 11:49
Ответить | Цитировать
Denis
Denis

Зарегистрирован:
2008-07-15
Сообщений: 666

Цитата:

если я не пользуюсь такими коментами в коде, то поиск контент не индексирует (только содержимое тайтлов?).

да

Ксю доставляет...
20.01.2010, 11:52
Ответить | Цитировать
anton

Зарегистрирован:
2009-09-24
Сообщений: 17

Цитата:
Системные настройки (раскомментил уже все):

Этого делать не надо. Верните все обратно.

Теги <!--content--><!--/content--> должны присутствовать обязательно!
20.01.2010, 18:38
Ответить | Цитировать
Гость
Гость

Цитата:
Посмотрите, в таблице MessageНомерКомпонентаСПоиском есть записи?

Вот оно! На одном Неткате расположено два сайта. Для удобства редактирования все используемые компоненты раскиданы на 2 группы, т.е. для каждого сайта используется свой компонент. Так есть и с поиском, для первого сайта используется компонент поиск под №60, а для второго - №77. При индексации заполняется таблица Message60, а Message77 остается пустой. Конечно можно было бы использовать компонент 60, но оформление поиска разное. Можно ли сделать так, чтобы при переиндексации заполнялись обе таблицы?
Цитата:
Этого делать не надо. Верните все обратно.

Теги <!--content--><!--/content--> должны присутствовать обязательно!

Вернул. С тэгами все стало замечательно индексироваться улыбка.
22.01.2010, 15:26
Ответить | Цитировать
Гость
Гость

Скопировал данный с 60й таблицы в 77ую. Ничего не изменилось...
26.01.2010, 00:42
Ответить | Цитировать
Гость
Гость

Доброй ночи.
У меня таже проблема. поиск по сайту не работает. <!--content--> присутствует
Вот настройка компонента
Код:

global $HTTP_HOST;

$ignore_sub = false;
$ignore_cc = false;
$ignore_catalogue = true;

#данная переменная содержит имя домена без www
#$SEARCH_HOST=(substr(strtolower($HTTP_HOST),0,3)=="www"?substr($HTTP_HOST,4):$HTTP_HOST);
$SEARCH_HOST=$HTTP_HOST;
#данная переменная содержит имя домена с www
#$SEARCH_HOST=(substr(strtolower($HTTP_HOST),0,3)=="www"?$HTTP_HOST:"www.".$HTTP_HOST);



if ( get_magic_quotes_gpc() ) {
$search_string = stripslashes($_GET['text']);
}
else {
$search_string = $_GET['text'];
}

$db_search_expression = nc_search_get_db_expression($search_string, $current_catalogue['Language']);

$query_where = "MATCH(a.Title, a.Body) AGAINST('".addslashes($db_search_expression)."' IN BOOLEAN MODE) AND a.URL LIKE 'http://".$SEARCH_HOST."%'";
$query_order = "MATCH(a.Title, a.Body) AGAINST('".addslashes($db_search_expression)."' IN BOOLEAN MODE)";

//*****
//old-style search (deprecated)
$text=FilterText($text,1);

#полнотекстовый поиск с использованием релевантности
#$query_where = "MATCH(a.Title,a.Body) AGAINST('".addslashes($text)."') AND a.URL LIKE 'http://".$SEARCH_HOST."%'";
#$query_order = "MATCH(a.Title,a.Body) AGAINST('".addslashes($text)."') DESC";

#полнотекстовый поиск без использования релевантности
#$query_where = "MATCH(a.Title,a.Body) AGAINST('".addslashes($text)."*' IN BOOLEAN MODE) AND a.URL LIKE 'http://".$SEARCH_HOST."%'";
#$query_order = "MATCH(a.Title,a.Body) AGAINST('".addslashes($text)."*' IN BOOLEAN MODE)";

#поиск точного наличия искомой фразы в тексте
#$query_where = "(a.Title LIKE '%$text%' OR a.Body LIKE '%$text%') AND a.URL LIKE 'http://".$SEARCH_HOST."%'";
#$query_order="a.Title LIKE '%$text%' DESC";



не ищет все равно.

Я не могу понять где код, который должен возвращать 200. возможно в этом проблема
спасибо, если подскажите
26.01.2010, 12:00
Ответить | Цитировать
DiGGy
DiGGy
DiGGy

Зарегистрирован:
2005-04-04
Сообщений: 1546

Гость_другой писал(а):
не ищет все равно.

Модуль поиска состоит из 2х независимых частей:
1. Функционал индексации сайта, обычно запускается через cron (планировщик заданий). Бегает по всем страничкам сайта и записывает содержимое тегов <!-- content --> <!-- /content --> в таблицу компонента поиска.
2. Компонент, отображающий результаты поиска по ключевому слову.

(как выше писал Денис) Вам надо локализовать проблему. Надо проверить результат индексации, т.е. наличие записей в таблице компонента. Если их нет, значит проблемы с индексацией, если записи есть, значит проблема с выводом. От этого результата дальше и будете плясать.

Гость_другой писал(а):
Я не могу понять где код, который должен возвращать 200. возможно в этом проблема

Поставьте себе FireFox и установите к нему плагин Web-Developer. В нем на вкладке Инфо есть пункт "Показать заголовки ответа". Там можете посмотреть какие http заголовки возвращают ваши странички.

Через php формирование заголовков делается след. образом:
Код:
header("200 OK")
или
header("Status: 200 OK") // если php подключен к apache как отдельное cgi приложение
или
header("404 Not Found"); // если страница не найдена


Temet nosce...
26.01.2010, 14:39
Ответить | Цитировать
Гость
Гость

Добрый теперь день. Спасибо за ответ. При индексировании
Цитата:

Последняя индексация сайта: 2010-01-26 13:12:14
Проиндексировано документов: 71 (190K)
Неработающие ссылки

почему то в неработающих ссылках и есть страницы с новостями, где содержаться нужные слова грустный Не могли бы подсказать изза чего именно так случается? htaccess я подправил, убрал e404.php На всякий случай. В настройках индексации все верно, без www ссылки верно. И больше параметра 10 не индексирует, Если 10 пишет нормально, но почему-то сайт становиться на несколько минут не доступным.
26.01.2010, 15:05
Ответить | Цитировать
DiGGy
DiGGy
DiGGy

Зарегистрирован:
2005-04-04
Сообщений: 1546

Гость писал(а):
почему то в неработающих ссылках и есть страницы с новостями, где содержаться нужные слова грустный Не могли бы подсказать изза чего именно так случается?

Скиньте несколько указанных ссылок на форум для примера.

Гость писал(а):
htaccess я подправил, убрал e404.php На всякий случай.

Верните на место, ибо не ведаете, что творите...

Гость писал(а):
В настройках индексации все верно, без www ссылки верно. И больше параметра 10 не индексирует, Если 10 пишет нормально, но почему-то сайт становиться на несколько минут не доступным.

Индексацию лучше проводить не ручками через админку, а через cron.

Советы:
1. Выполните в админке sql-запрос: select * from MessageXX , где ХХ - это номер компонента с поиском.
2. Если запрос вернет какие-то записи, то посмотрите какие страницы проиндексированы и какой текст на этих страницах попал в таблицу. Сделайте поиск по словам из проиндексированных страниц. Если поиск работает, то проблема лишь в ваших новостях - может ссылки битые. Если поиск ничего не найдет, то проблема в настройке компонента - это надо в системных настройках компонента ковыряться.
3. Если запрос не вернет ни одной записи, значит у вас индексация вообще не происходит. Проверьте настройки модуля, адрес стартовой страницы, номер компонента и т.п.

Temet nosce...
26.01.2010, 15:26
Ответить | Цитировать
Гость
Гость

DiGGy писал(а):

Советы:
1. Выполните в админке sql-запрос: select * from MessageXX , где ХХ - это номер компонента с поиском.
2. Если запрос вернет какие-то записи, то посмотрите какие страницы проиндексированы и какой текст на этих страницах попал в таблицу. Сделайте поиск по словам из проиндексированных страниц. Если поиск работает, то проблема лишь в ваших новостях - может ссылки битые. Если поиск ничего не найдет, то проблема в настройке компонента - это надо в системных настройках компонента ковыряться.


Запрос вернул некоторые записи таблицы, но не "новости". Однако же, даже если поиск проводить по слову из столбца body или title - ничего не находит. Столбец результата запроса keywords вообще пустой. Как я понимаю, он заполняется в поле ключевые слова. Оно заполнено только в новостях, которые он считает за неверные ссылки.
Привожу настройки поиска.
Системные настройки
Код:
global $HTTP_HOST;

$ignore_sub = false;
$ignore_cc = false;
$ignore_catalogue = true;

#данная переменная содержит имя домена без www
#$SEARCH_HOST=(substr(strtolower($HTTP_HOST),0,3)=="www"?substr($HTTP_HOST,4):$HTTP_HOST);
$SEARCH_HOST=$HTTP_HOST;
#данная переменная содержит имя домена с www
#$SEARCH_HOST=(substr(strtolower($HTTP_HOST),0,3)=="www"?$HTTP_HOST:"www.".$HTTP_HOST);



if ( get_magic_quotes_gpc() ) {
$search_string = stripslashes($_GET['text']);
}
else {
$search_string = $_GET['text'];
}

$db_search_expression = nc_search_get_db_expression($search_string, $current_catalogue['Language']);

$query_where = "MATCH(a.Title, a.Body) AGAINST('".addslashes($db_search_expression)."' IN BOOLEAN MODE) AND a.URL LIKE 'http://".$SEARCH_HOST."%'";
$query_order = "MATCH(a.Title, a.Body) AGAINST('".addslashes($db_search_expression)."' IN BOOLEAN MODE)";

//*****
//old-style search (deprecated)
$text=FilterText($text,1);

#полнотекстовый поиск с использованием релевантности
$query_where = "MATCH(a.Title,a.Body) AGAINST('".addslashes($text)."') AND a.URL LIKE 'http://".$SEARCH_HOST."%'";
$query_order = "MATCH(a.Title,a.Body) AGAINST('".addslashes($text)."') DESC";

#полнотекстовый поиск без использования релевантности
$query_where = "MATCH(a.Title,a.Body) AGAINST('".addslashes($text)."*' IN BOOLEAN MODE) AND a.URL LIKE 'http://".$SEARCH_HOST."%'";
$query_order = "MATCH(a.Title,a.Body) AGAINST('".addslashes($text)."*' IN BOOLEAN MODE)";

#поиск точного наличия искомой фразы в тексте
$query_where = "(a.Title LIKE '%$text%' OR a.Body LIKE '%$text%') AND a.URL LIKE 'http://".$SEARCH_HOST."%'";
$query_order="a.Title LIKE '%$text%' DESC";


Префикс списка объектов
Код:
 
<div class='content'><h1>Поиск на сайте...</h1>
$searchForm
".opt($cc_env[LocalQuery] .= opt_case($action, "&action=$action", ""), "").opt($cc_env[LocalQuery] .= opt_case($text, "&text=".str_replace(" ","%20",$text), ""), "")."

".opt_case(!$totRows,
"Ничего не найдено",
"Всего результатов: <b>$totRows</b>
<ol>")."

Объект в списке
Код:

<li value='".($begRow+$f_RowNum)."'><a href='$f_URL'>".nc_search_highlight_words($f_Title, $db_search_expression, 150, "<b>", "</b>")."</a><br>
".nc_search_highlight_words($f_Body, $db_search_expression)."
<br>
<span style='color: gray;'>$f_URL (".opt_case($f_Size < 1024, $f_Size." байт", round($f_Size / 1024)."K").")</span> &mdash; <a href='$f_URL' target='_blank'>открыть в новом окне</a><br><br>
</li>


Суффикс
Код:
".opt($totRows,"</ol>
<table width=100%>
<tr><td width=100% align=center>".browse_messages($cc_env, 10)."</td></tr>
<tr><td align=center>".opt($prevLink,"<a href=$prevLink&action=index&text=".$text.">Назад</a> ").opt($nextLink," <a href=$nextLink&action=index&text=".$text.">Вперед</a>")."</td></tr>
</table>")."
</div>


198 196 2010-08-26 13:54:00 7842
Страницы: 1  |  2
Описание проекта