|
|
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

Зарегистрирован: 2008-07-15
Сообщений: 666
|
Посмотрите, в таблице MessageНомерКомпонентаСПоиском есть записи?
Если есть, попробуйте в сис. настройках убрать
AND a.URL LIKE 'http://".$SEARCH_HOST."%'"
|
|
|
19.01.2010, 11:49
|
|
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

Зарегистрирован: 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

Зарегистрирован: 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> — <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>
|