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

Не корректно работает индексация

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

Не могу настроить индексацию сайта. Стоит индексирование всего сайта, а индексируется всего 2 страницы. Каталог товаров (компонент: Магазин: Товар) не индексируется.
Вот лог индексации:
Код:

21:23:22 INDEXING_BEGIN_END Started indexing area 'site3'
21:23:22 CRAWLER_REQUEST GET (сайт)
Response: 200
Content-Type: text/html
Content-Length: no, received: 23229 bytes
21:23:23 CRAWLER_REQUEST GET (сайт)/index/
Response: 200
Content-Type: text/html
Content-Length: no, received: 23229 bytes
21:23:23 CRAWLER_REQUEST GET (сайт)/Netshop/
Response: 200
Content-Type: text/html
Content-Length: no, received: 149945 bytes
21:23:24 INDEXING_BEGIN_END Ended indexing area 'site3'

Что может быть сбито в индексации?
20.05.2013, 02:07
Ответить | Цитировать
Гость
Гость

Путем нехитрых манипуляций установил что не индексировался сайт из за того что области с магазина были доступны только для автоматизированных пользователей. Вопрос: как проиндексировать разделы на сайте которые доступны только для автоматизированных пользователей?
20.05.2013, 02:09
Ответить | Цитировать
Гость
Гость

И еще что означает вот эта ошибка при индексации?

Цитата:
Received length of content (150019) exceeded the permissible value (pcre.backtrack_limit = 100000)
20.05.2013, 09:04
Ответить | Цитировать
Руслан Густокашин
Студия Вэлпис
Руслан Густокашин

Зарегистрирован:
2012-02-06
Сообщений: 869

Какая у вас версия системы? Индексация останавливается именно из-за нее.
У меня тоже такая ошибка вылезала в версии 4.72. Изучил исходники netcat, оказалось, что это ошибка неткатовских разработчиков.
Ведь эта переменная отвечает за лимит на количество REGEX-ссылок (PCRE) и не имеет отношения к объему данных страницы.
Я обращался к разработчикам в техподдержку, они обещали исправить в следующей версии системы.
В качестве решения проблемы я пока что просто увеличил значение переменной pcre.backtrack_limit до 1млн. Кажется вот такой командой:
ini_set('pcre.backtrack_limit',1000000);
в файле vars.inc.php (но могу ошибаться - давно дело было).

20.05.2013, 10:17
Ответить | Цитировать
Гость
Гость

Версия системы 4.7. Ошибку исправил, прописав в файле vars.inc.php ini_set("pcre.backtrack_limit","1000000");.
Теперь осталась проблема с индексацией по авторизации. Каждая страница которая была проиндексирована имела в контенте:
Код:

------------------ [ content ] -------------------
Логин:

Пароль:

Сохранить логин и пароль


Как сделать индексацию чтобы робот не видел этой формы и видел что за ней?
20.05.2013, 10:30
Ответить | Цитировать
Руслан Густокашин
Студия Вэлпис
Руслан Густокашин

Зарегистрирован:
2012-02-06
Сообщений: 869

Проблема в том, что робот-индексатор лезет на сайт анонимно.
Поэтому вам нужно открыть публично те разделы сайта, которые нужно чтобы попали в поисковый индекс.
Вы ведь писали, что у вас каталог был закрыт от внешних пользователей. Вы не решили эту проблему?
Или у вас конфиденциальный сайт?

20.05.2013, 10:38
Ответить | Цитировать
Гость
Гость

Ну судя по всему эту проблему решить я не смог.
На сайте находится каталог товаров который доступен только зарегистрированным пользователям, т.е. соответственно и поиск по сайту будет доступен только зарегистрированным.
Я вот думаю может в модулю прописать чтобы он при индексации каждой страницы авторизовывался?
20.05.2013, 11:04
Ответить | Цитировать
Руслан Густокашин
Студия Вэлпис
Руслан Густокашин

Зарегистрирован:
2012-02-06
Сообщений: 869

Попробуйте в главном макете дизайна в шаблонах вывода навигации сделать автоматическую авторизацию посетителя (робота-индексатора) без его ведома, по IP-адресу и User-agent, как-нибудь типа этого:
if(!$current_user['User_ID'] && $_SERVER['REMOTE_ADDR']=='127.0.0.1' && $_SERVER['HTTP_USER_AGENT']=='.....' ) Authorize(1);

Но я не знаю, какой user-agent у неткатовского индексатора (посмотрите в логах апачи) и не уверен, что он лезет с адреса 127.0.0.1 (тоже проверьте по логам).
Единичка (Authorize(1)) - это номер пользователя, из-под которого будет работать индексатор. В данном случае это пользователь admin, но я настоятельно рекомендую Вам для безопасности создать другого пользователя, у которого будут права "только чтение" на вашем сайте, и указать в вышеприведенном коде ID именно этого пользователя.

20.05.2013, 11:30
Ответить | Цитировать
Гость
Гость

Действительно помогло.
Лезет он через локалхост. Осталось теперь только проиндексировать сайт и разместить форму поиска)
Спасибо)
20.05.2013, 11:40
Ответить | Цитировать
Руслан Густокашин
Студия Вэлпис
Руслан Густокашин

Зарегистрирован:
2012-02-06
Сообщений: 869

Пожалуйста! улыбка
Только будьте внимательны, обязательно проверяйте user-agent, потому что помимо робота-индексатора из-под localhost нередко лезет еще и сервис ngnix, который если сейчас не установлен у вас на хостинге, то может вдруг потом надумаете установить и забудете про ваши хитрые настройки индексатора. В результате будет неприятная штука - все посетители сайта станут авторизованными под этим логином.

20.05.2013, 12:17
Ответить | Цитировать
Гость
Гость

Я учту это. И еще я красиво уходить не умею, так что сразу еще один вопрос. Во время индексации в фоне, я додумался удалить правило индексирования, что теперь при попытке проиндексировать сайт вызывает ошибку:
Код:

Fatal error: Uncaught exception 'nc_search_data_exception' with message 'nc_search_rule: object with id=3 not found' in /home/s/shalov/ds.shalov.bget.ru/public_html/netcat/modules/search/lib/data/persistent.php:340 Stack trace: #0 /home/s/shalov/ds.shalov.bget.ru/public_html/netcat/modules/search/lib/indexer/task.php(52): nc_search_data_persistent->load('3') #1 /home/s/shalov/ds.shalov.bget.ru/public_html/netcat/modules/search/lib/data/persistent.php(199): nc_search_indexer_task->set('rule_id', '3') #2 /home/s/shalov/ds.shalov.bget.ru/public_html/netcat/modules/search/lib/data/persistent/collection.php(84): nc_search_data_persistent->set_values_from_database_result(Array) #3 /home/s/shalov/ds.shalov.bget.ru/public_html/netcat/modules/search/lib/data/persistent/collection.php(57): nc_search_data_persistent_collection->select_from_database('SELECT * FROM `...') #4 /home/s/shalov/ds.shalov.bget.ru/public_html/netcat/modules/search/nc_search.class.php(321): nc_search_data_persistent_collection::load_all('nc_search_index...', in /home/s/shalov/ds.shalov.bget.ru/public_html/netcat/modules/search/lib/data/persistent.php on line 340

Перекопав форум ничего толкового не нашел. Может сейчас кто знает как решается эта пробелма?
198 196 2013-09-15 15:20:53 13063
Страницы: 1  |  2
Описание проекта