Здравствуйте.
Попробую описать настройку Sphinx под Drupal. Подробнее о самом движке и его установке читайте на официальном сайте.
Для интеграции этого движка на данный момент существует два модуля, здесь я затрону описание только одного из них. Итак, Вам потребуются: Sphinx 0.9.9-rc2, модуль Sphinxsearch. Так же потребуется доступ к ssh, без него запуск индексатора и поискового демона будет невозможен!
Еще одна оговорка :). Я создала в /home/user папку sphinx, в которой находятся папки socket, index, log, config. Это необязательное действие и Вы можете хранить свои данные где хотите. Но дальнейшее описание будет строиться исходя из такого месторасположения и содержания файлов и папок.
Описание по шагам:
Шаг первый!
После того как Вы скачали модуль следует отредактировать файл sphinx.conf, который лежит в sphinxsearch\docs\contrib. Это файл конфигурации, в нем описываются все настройки индексатора и поиска и т.д. На самом деле количество доступных настроек в несколько раз превышает описанные в данном файле варианты. Наиболее полное описание можно взять в самом Сфинксе. Здесь мы рассмотрим только те настройки, которые требуются для запуска.
{
type = xmlpipe
xmlpipe_command = /usr/bin/wget -O - -q -t 1 http://www.domain.com/sphinxsearch_scripts/sphinxsearch_xmlpipe.php?mode=main\&id=0\&first_nid=0\&last_nid=49999
}
source source_main1 : source_main0
{
xmlpipe_command = /usr/bin/wget -O - -q -t 1 http://www.domain.com/sphinxsearch_scripts/sphinxsearch_xmlpipe.php?mode=main\&id=1\&first_nid=50000
}
Этот код указывает на метод и адрес получения данных индексатором. Не рекомендую ничего менять, кроме адреса сайта. Для нормального запуска этой функции необходимо, чтобы папка "sphinxsearch_scripts" находилась в /path-to-drupal-root.
{
source = source_main0
path = /home/user/sphinx/index/main0
docinfo = extern
morphology = stem_ru
charset_type = utf-8
charset_table = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F
min_word_len = 1
html_strip = 0
# agent = /home/user/sphinx/socket/sphinx.s
}
index index_main1 : index_main0
{
source = source_main1
path = /home/user/sphinx/index/main1
}
index index_join
{
type = distributed
local = index_main0
local = index_main1
}
indexer
{
mem_limit = 32M
}
Все эти настройки так или иначе относятся к индексации данных. Здесь Вы можете изменять и добавлять любые доступные настройки.
{
#listen = /home/user/sphinx/socket/sphinx.s
listen = localhost:3312
log = /home/user/sphinx/log/searchd.log
query_log = /home/user/sphinx/log/query.log
read_timeout = 5
max_children = 30
pid_file = /home/user/sphinx/log/searchd.pid
max_matches = 1000
seamless_rotate = 1
preopen_indexes = 1
unlink_old = 1
}
Если Вам надо настроить соединение через сокет, то придется сделать небольшие изменения в sphinxapi.php .
Лирическое отступление о сокетах :
Открываем sphinxapi.php лежит в sphinxsearch\lib.
Ищем function SphinxClient () , после $this->_port добавляем $this->_socket = 0; .
Заменяем функцию function SetServer ( $host, $port ) на:
<?php
function SetServer ( $host, $port )
{
assert ( is_int($port) );
assert ( is_string($host) );
if ( $host[0] == '/')
{
$this->_host = 'unix://' . $host;
$this->_socket = 1;
$this->_port = 0;
return;
}
elseif ( substr ( $host, 0, 7 )=="unix://" )
{
$this->_host = $host;
$this->_socket = 1;
$this->_port = 0;
return;
}
else
{
$this->_host = $host;
$this->_port = $port;
}
}
?>
В function _Connect () после if ( !$fp ){ добавляем
<?php if ( $this->_socket=1 )
{ $location = $this->_host;}
else
{$location = "{$this->_host}:{$this->_port}";}?>
Теперь Вы сможете запустить поискового демона, используя сокет.
Шаг второй!
Все подготовительные этапы завершены и можно копировать модуль на сервер.
Дальнейшая настройка никак не обойдется без ssh.
Сначала необходимо запустить индексатор. Для этого используем следующий код:
/usr/bin/indexer - путь до индексатора, путь и имя этого файла могут отличатся от моего.
--config /home/user/sphinx/config/sphinx.conf - указываем путь к файлу конфигурации.
--all - проиндексировать все существующие индексы.
Если индексация прошла успешно следует запустить поискового демона:
/usr/sbin/searchd --config /home/user/sphinx/config/sphinx.conf
Остановить:
/usr/sbin/searchd --config /home/user/sphinx/config/sphinx.conf --stop
Очистить процессы searchd:
killall searchd или killall -9 searchd
Шаг третий!
Теперь можно перейти к настройкам модуля.
В поле "Sphinx searchd host name", если Вы настроили sphinxapi.php, помимо хоста можно вводить путь до сокета.
Другие настройки интуитивно понятные, так что описывать их не буду.
Если Вы правильно настроили модуль, то на странице "Check connection" будет примерно такой результат:
Testing Sphinx searchd daemon connection.
o Да - Your Sphinx searchd daemon is up and running.
*
Testing search query using index index_main0.
o Query asks for a list of all indexed documents to retrieve the last indexed node.
o MySQL equivalent would look something like:
SELECT nid FROM {node} ORDER BY nid DESC LIMIT 1;
o Да - Test passed successfully. Sphinx results summary follow:
+ Query execution time: 0.291 seconds
+ Total results found: 100
+ Total results available: 100
+ Last indexed node: 100 (2009-05-04 18:51:34)
*
Testing excerpts builder using index index_main0.
o Да - Test passed successfully. Sphinx results summary follow:
+ Sample text: The quick brown fox jumps over a lazy dog.
+ Keywords: brown lazy
+ Result: The quick <b>brown</b> fox jumps over a <b>lazy</b> dog.
Спасибо за внимание и удачного Вам поиска!
С Уважением, Мария ( gagaga ).
Комментарии
молодцом!
вопрос такой. какое количество документов у вас на сайте, что сфинкс так потребовался?
(я чтобы все из нас скопом не поперлись его ставить)
Отличная статья, спасибо, что поделилась опытом!
кстати, всех с праздником!
О спасибо, я на днях пытался его на сервере поставить, да чего то не встало. С вашей инструкцией буду пробовать ещё.
На самом деле нод немного, около 6000. Основная проблема была в морфологии и в специфичных заголовках. Так как большинство названий содержат буквы, цифры, точки и тире. К сожалению, стандартный поиск из-за этого не находил до 50% материала. Вот поэтому пришлось устанавливать Sphinx. Он с этой проблемой справился без проблем.
И Вас с праздником Великой победы!
Спасибо!
Sphinx можно установить только на виртуальный хост? т.е. на тариф за 150 рэ в месяц - не поставить?
Спасибо!
Я почти ничего не понял,но туториал крутой.В закладки.
Можно и не на виртуальный хост, но только если хостер согласится поставить сам бинарный пакет Sphinx на сервер. У Вас просто не будет для этого необходимых прав. А цена тарифа мне, например, ничего не говорит
спасибо, полезно
глядишь когда нибудь окажется нужным
P.S. где бы надыбать тысяч 100 нод
Как показала практика, проблемы с поиском могут возникнуть, начиная от 13 тысяч нод + 40 тысяч комментов. И это - на выделенном сервере.
хм, эт плохо, у меня 17к нод
я правда использую гугл-модуль-поиска, но стандартный собирался включить из-за возможностей расширенного поиска
а еще dpsearch есть
Рад сообщить что окончательно внедрил поддержку sphinx на моем хостинге.
Настраивается по документации из этого топика. (Данная настройка изначально тестировалась и создавалась у меня на хостинге, потому должна работать)
Учтите что полный путь к бинарной програме демона: /usr/sbin/sphinx-searchd
к индексеру /usr/bin/sphinx-indexer
Также, чтоб ваш демон запускался сразу же после ребута сервера, надо в крон прописать следующую задачу:
reboot /usr/sbin/sphinx-searchd --config /home/username/YOUR_SPHINX.CONF
Еще раз спасибо gagaga за проведеную работу и помощь!
Спасибо за статью, внедрил этот модуль на своем сайте (хостинг у Гора) строго по вашей инструкции, но результат очень удивил. 14000 нод, 45000 каментов, 1000 юзеров зареганных юзеров, в среднем онлайн 15-20 человек, среднее время генерации одной страницы для зареганного - 1-1.5 секунды. НО поиск через сфинкса занимает 10-20 секунд! Обычный друпаловский поиск примерно так же работает. Это нормально? Если нет, то куда смотреть?
Пробовал и хостом, и через сокет.
Я не знаю, у меня не так много материала на сайте. Но у меня достаточно долго ищет, если включить дополнительные блоки, например фасеточный поиск. Как раз с ним у меня скорость не отличалась от встроенного поиска. Без этих блоков ищет: 7392 documents found in 0.043 seconds.
Спасибо за ответ. У меня ситуация такая: все дополнительные блоки на странице поиска отключены, оставлен самый минимум, фасеточный блок отключен тем более. По логам сфинкса скорость его поиска тоже мгновенная, примерно как у вас. Однако время генерации страницы со результатами поиска огромно, как я уже написал 10-20 секунд. Т.е. получается, что сфинкс ищет-то быстро, но сам друпал тормозит. Что делать - ума не приложу.
Ок, благодаря помощи Gor'a проблемное место было найдено, и проблема решена. В чем суть: в файле shpinxsearch.module есть функция sphinxsearch_get_node_text(&$node, $build_mode), она возвращает весь текст заданной ноды. Эта фунция используется в двух местах - при индексации контента и при выводе результатов поискового запроса (конкретно, для построения т.н. отрывка текста). В этой функции есть кусок
<?php
// Fetch extra data normally not visible
$extra = node_invoke_nodeapi($node, 'update index');
foreach ($extra as $t) {
$text .= $t;
}
unset($extra, $t);
?>
Если выкинуть этот кусок кода, то поиск ускоряется в 10 раз, и работает моментально, как надо. Оно и понятно: это код на каждый найденный документ запускает его переиндексацию только лишь для того, чтобы точнее показать т.н. "отрывок текста" из ноды! Для вывода результатов поиска это ИМХО лишнее.
Но этот же код нужен для индексации. Значит берем функцию sphinxsearch_get_node_text(&$node, $build_mode), дублируем её в конец файла shpinxsearch.module, переименовываем её в function sphinxsearch_get_node_text_fast(&$node, $build_mode) и удаляем из нее кусок
<?php
// Fetch extra data normally not visible
$extra = node_invoke_nodeapi($node, 'update index');
foreach ($extra as $t) {
$text .= $t;
}
unset($extra, $t);
?>
Затем находим функцию, которая выполняет поисковый запрос: в файле shpinxsearch.common.inc - function sphinxsearch_execute_query($search_options), и на 624 строке меняем название функции:
+ $search_results['excerpts'][] = sphinxsearch_get_node_text_fast($node, NODE_BUILD_SEARCH_RESULT);
Теперь у нас индексация выполняется как обычно, а поиск - без лишних запросов и в 10 раз быстрее, чем раньше.
В итоге - сфинкс рулит!
патч пошлите разрабам. это явный баг
Я не думаю, что это баг, потому что с этими строками кода "отрывок текста" релевантнее выглядит, и потом, разработчику совсем не до модуля, так что особого смысла нет в этом.
Sphinx 0.9.9-rc2, Ubuntu 8, Sphinxsearch 6.x-1.x-dev от 2008-Nov-08, Drupal 6.12, использую приведённый вами конфиг. После настройки модуля получаю на странице проверки соединения со Sphinx:
Testing search query using index .
o Query asks for a list of all indexed documents to retrieve the last indexed node.
o MySQL equivalent would look something like: SELECT nid FROM {node} ORDER BY nid DESC LIMIT 1;
o ERROR - Sphinx query index not specified. Please, check module settings to match your Sphinx server configuration.
Testing excerpts builder using index .
o ERROR - Sphinx excerpts index not specified. Please, check module settings to match your Sphinx server configuration.
Хотя вроде бы всё настроил, не подскажете, что пропустил?
А вы через шелл индексатор и поисковый демон запустили?
Больше похоже, что в настройках модуля неверно указаны индексы для поиска
Да через шелл я запустил демона и и индексатор. В sphinx.conf - пути указал правильно иначе индексатор не запускается. В настройках модуля выбрал тип нод по которым хочу осуществлять поиск. Чего ещё посоветуете? А то хочется Sphinx...
Посмотрите на картинку в аттаче, и скажите, что у вас в этом пункте.
Понял свою ошибку, индексы неправильно указал. batbug - Большое тебе человеческое спасибо!!!
Не за что, сам через это прошел.
А Сфинксом можно искать по части слова? Например есть слово "Автомобили" и нужно его найти по запросу "Авто".
Т.к. при стандартной установке и использовании такой возможности не наблюдаю!
Спасибо!
Можно. Можно и по одной букве искать и морфология есть.
Здравствуйте, будьте добры подскажите, что я упустил
При запуске индексатора, выходит:
Sphinx 0.9.8.1-release (r1533)
Copyright (c) 2001-2008, Andrew Aksyonoff
using config file '/usr/local/etc/sphinx.conf'...
indexing index 'index_drupal_example_main0'...
ERROR: index 'index_drupal_example_main0': xmlpipe: expected '<document>', got 'Could not locate Drupal's bootstrap.inc script. This script sho'.
total 0 docs, 0 bytes
total 0.010 sec, 0.00 bytes/sec, 0.00 docs/sec
indexing index 'index_drupal_example_main1'...
ERROR: index 'index_drupal_example_main1': xmlpipe: expected '<document>', got 'Could not locate Drupal's bootstrap.inc script. This script sho'.
total 0 docs, 0 bytes
total 0.010 sec, 0.00 bytes/sec, 0.00 docs/sec
indexing index 'index_drupal_example_delta'...
ERROR: index 'index_drupal_example_delta': xmlpipe: expected '<document>', got 'Could not locate Drupal's bootstrap.inc script. This script sho'.
total 0 docs, 0 bytes
total 0.010 sec, 0.00 bytes/sec, 0.00 docs/sec
distributed index 'index_drupal_example_join' can not be directly indexed; skipping.
А тестируя в модуле, первый и последний тесты положительные, а вот Testing search query using index
выдаёт:
Query asks for a list of all indexed documents to retrieve the last indexed node.
MySQL equivalent would look something like:
SELECT nid FROM {node} ORDER BY nid DESC LIMIT 1;
ERROR - Search query failed.
Sphinx message: index index_drupal_example_delta,index_drupal_example_main0,index_drupal_example_main1: sort-by attribute 'nid' not found
А Вы этот шаг выполнили:
необходимо, чтобы папка "sphinxsearch_scripts" находилась в /path-to-drupal-root.
И что у Вас в конфиге написано?
вполне возможно, что здесь и кроется погрешность
я не понял, что значит /path-to-drupal-root
и судя по ссылке указанной в конфиге
http://www.***.ru/sphinxsearch_scripts/sphinxsearch_xmlpipe.php
папку «sphinxsearch_scripts» переместил в корневую директорию сайта ***.ru/sphinxsearch_scripts
/path-to-drupal-root это главная папка, в которой находится index.php и т.д.
Где у вас находится вот этот адрес /var/db/sphinxsearch/data/drupal_example/main0, он вообще существует?
Все файлы которые относятся к сфинксу могут находится только в Вашей домашней папке и глубже.
В Вашем случае это /home/***/. Ваша команда вызова индексатора может выглядеть так: /usr/local/bin/indexer --config /home/***/путь до конфига/sphinx.conf --all , и соответственно путь к индексам, логам и т.д. также должен начинаться с /home/***/.
А Вы демона запустили? И какой командой?
такой адрес существует (/var/db/sphinxsearch/data/drupal_example/main0), и там появились различные файлы, подобно delta.spp, main0.spp, main1.spp... с различными другими расширениями .spa, .spd, .sph, .spi...
команда вызова индексатора
/usr/local/bin/indexer --config /usr/local/etc/sphinx.conf --all
демона запускал, всё успешно
/usr/local/sbin/searchd --config /usr/local/etc/sphinx.conf
Помогите пожалуйста, все по инструкции настроил, нажимаю Check Connection в настройках сфинкса в друпале, выдает следующее:
Testing Sphinx searchd daemon connection.
* ERROR - Unable to connect to your Sphinx searchd daemon.
o searchd host: localhost
o searchd port: 3312
o Sphinx message: connection to localhost:3312 failed (errno=111, msg=Connection refused)
P.S. странная ошибка в индексе дельта
ERROR: index 'index_drupal_example_delta': xmlpipe: expected '', got 'XMLPipe for delta index failed: Could not obtain list of main i'.
Это значит что нужно создавать в базе таблицу с каунтером и на него ссылаться в conf файле?
Вдогонку такой вопрос: Каждый запуск индексации сфинкс просматривает только новые ноды или все заново?
Спасибо.
В нашем случае есть небольшая проблема, которая выражается в том, что пока сфинкс не запущен, дельта не может быть создана из-за того, что xmlpipe при генерации дельты использует данные из запущенного сфинкса.
Получается замкнутый круг. У меня пока получается так, что индекс дельты не создается при первичной индексации, я запускаю сфинкс, индексирую дельту, она создается, но не попадает в поисковый джоин, объединяющий индекс+дельту.
Похожая история. Там новый модуль для шестерки. Ни документации, ни пояснений, ничего. Похоже надо сначала хорошенько сам sphinx изучить, настроить и только потом подключать модуль. Только времени как всегда нет. Если получится отпишусь.
Возникла проблема...почти как предыдущие но немного другая...
Все сделал как написано выше, но по нажатию Check Connection выдает следующее:
*
Testing Sphinx searchd daemon connection.
o OK - Your Sphinx searchd daemon is up and running.
*
Testing search query using index index_drupal_example_join.
o Query asks for a list of all indexed documents to retrieve the last indexed node.
o MySQL equivalent would look something like:
SELECT nid FROM {node} ORDER BY nid DESC LIMIT 1;
o ERROR - Search query failed.
+ Sphinx message: index index_drupal_example_main0,index_drupal_example_main1: sort-by attribute 'nid' not found
*
Testing excerpts builder using index index_drupal_example_main0.
o OK - Test passed successfully. Sphinx results summary follow:
+ Sample text: The quick brown fox jumps over a lazy dog.
+ Keywords: brown lazy
+ Result: The quick brown fox jumps over a lazy dog.
и еще при запуске индексатора
/usr/local/sphinx/bin/indexer --config /usr/local/sphinx/config/sphinx.conf --all
выдает ошибку - distributed index 'index_drupal_example_join' can not be directly indexed; skipping. В чем может быть проблема?
Это фича Сфинкса. Можно не обращать внимания.
http://groups.google.com/group/thinking-sphinx/browse_thread/thread/c4ef...
А индекс правильно создается? Посмотрите, правильно ли отдаются xml данные индексатору.
У меня такая же проблема. При запуске индексатора
ERROR: index 'index_main0': source 'source_main0': XML parse error: no element found (line=150999, pos=0, docid=17479).
total 13494 docs, 6722173 bytes
total 61.388 sec, 109502 bytes/sec, 219.81 docs/sec
indexing index 'index_main1'...
collected 0 docs, 0.0 MB
collected 0 attr values
sorted 0.0 Mvalues, nan% done
total 0 docs, 0 bytes
total 0.000 sec, 0 bytes/sec, 0.00 docs/sec
indexing index 'index_delta'...
ERROR: index 'index_delta': xmlpipe: expected '<document>', got 'XMLPipe for delta index failed: Could not obtain list of main i'.
total 0 docs, 0 bytes
total 0.000 sec, 0 bytes/sec, 0.00 docs/sec
distributed index 'index_join' can not be directly indexed; skipping.
total 1 reads, 0.000 sec, 32.0 kb/call avg, 0.0 msec/call avg
total 4 writes, 0.000 sec, 2.4 kb/call avg, 0.0 msec/call avg
Во-первых, какая-то ошибка возникает при создании первого индекса, и в него попадают не все ноды.
Во-вторых, не создается индекс index_delta по причине "XMLPipe for delta index failed: Could not obtain list of main indexes from Sphinx."
В результате на странице проверки соединения такая картина:
Есть ли у кого-то предположения, в чем дело?
А как это проверить!?
После запуска индексатора получаю следующий результат:
[~]$/usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/sphinx.conf --all
Sphinx 0.9.9-rc2 (r1785)
Copyright (c) 2001-2009, Andrew Aksyonoff
using config file '/usr/local/sphinx/etc/sphinx.conf'...
indexing index 'nodeIndex'...
collected 10376 docs, 39.9 MB
sorted 1.3 Mhits, 46.7% done
total 10376 docs, 39900724 bytes
total 33.480 sec, 1191750 bytes/sec, 309.90 docs/sec
total 2 reads, 0.017 sec, 1820.1 kb/call avg, 8.8 msec/call avg
total 11 writes, 0.085 sec, 786.0 kb/call avg, 7.7 msec/call avg
[~]$ /usr/local/sphinx/bin/searchd --config /usr/local/sphinx/config/sphinx.conf
Sphinx 0.9.9-rc2 (r1785)
Copyright (c) 2001-2009, Andrew Aksyonoff
using config file '/usr/local/sphinx/config/sphinx.conf'...
listening on 127.0.0.1:3312
*******
Ошибка так и осталась.
а почему выбор был в пользу Sphinx, а не Apache Solr?
есть еще другой момент
Apache Solr - написан на java
sphinx - написан на C, C++
Соответственно первое решение требует выделеного сервера, а второе можно запстить даже на обычном хостинге.
Для проверки правильности выдачи XML через ssh напрямую запросите выдачу: /usr/bin/wget -O - -q -t 1 http://www.domain.com/sphinxsearch_scripts/sphinxsearch_xmlpipe.php?mode...\&id=0\&first_nid=0\&last_nid=49999
Только пусть записывает в файл.
2T-34
Скорее всего у вас много CCK полей, либо иных модулей, которые тормозят выполнение node_load (каждый раз node_load начинает собирать все поля от модулей), в связи с чем после энного кол-ва node_load, происходит переполнение пыховского лимита памяти и xml прекращает отдаваться. Обход - переделать механизм выдачи. Уйти от node_load и собирать весь xml самому (в обход модульному методу). Такой подход позволяет ускорить индексацию в сотни раз (с node_load 1000 нод индексировалась в среднем за 1,5 минуты, а с ручной сборкой, 1000 нод проходила за 1,5 секунды).
Дельта не создастся, если сфинкс не поднят (а при первичной индексации он не может быть поднят никак). Увы, это такая особенность работы с xmlpipe. Я обычно пропускаю эту ошибку, а потом, чтобы delta начала обрабатываться, копирую файлики дельты руками.
Говорят морфология хорошая у сфинкса.
Сделал все как написано. выкладываю свой конфиг + принтскрины настроек на сайте.
Sphinx 0.9.9-rc2 (r1785)
Copyright (c) 2001-2009, Andrew Aksyonoff
using config file '/usr/local/sphinx/etc/sphinx.conf'...
WARNING: key 'type' is not multi-value; value in /usr/local/sphinx/etc/sphinx.conf line 220 will be ignored.
indexing index 'index_main0'...
collected 10376 docs, 39.9 MB
sorted 1.3 Mhits, 46.7% done
total 10376 docs, 39900724 bytes
total 29.912 sec, 1333931 bytes/sec, 346.88 docs/sec
indexing index 'index_main1'...
collected 10376 docs, 39.9 MB
sorted 1.3 Mhits, 46.7% done
total 10376 docs, 39900724 bytes
total 9.102 sec, 4383613 bytes/sec, 1139.93 docs/sec
distributed index 'index_join' can not be directly indexed; skipping.
total 4 reads, 0.090 sec, 1823.5 kb/call avg, 22.7 msec/call avg
total 22 writes, 0.185 sec, 787.9 kb/call avg, 8.4 msec/call avg
[php@wwwmoodle sphinxsearch_scripts]$ /usr/local/sphinx/bin/searchd --config /usr/local/sphinx/etc/sphinx.conf
Sphinx 0.9.9-rc2 (r1785)
Copyright (c) 2001-2009, Andrew Aksyonoff
using config file '/usr/local/sphinx/etc/sphinx.conf'...
WARNING: key 'type' is not multi-value; value in /usr/local/sphinx/etc/sphinx.conf line 220 will be ignored.
listening on 127.0.0.1:3312
Индексы создаются...XML файл напрямую через ssh создается и содержит нужную информацию. Но в закладке "Check connection" на втором тесте так и осталась ошибка. Подскажи пожалуйста что нетак и где подправить, уже недели две парюсь и никак(((((
Т. е. юзать sphinx предлагаете?
Не понял, откуда берутся файлы дельты, если она не создается?э
---
Первую проблему решил уменьшением числа нод на индекс.
отличная тема
Я не гуру в конфигах сфинкса, но я вижу у Вас для одного и того же индекса "source_main0" сразу два типа получения данных: mysql и xmlpipe.
Возьмите пример конфига из этой темы, либо прямо из модуля сфинкссерч и работайте с ним.
Вы запустите индексатор и посмотрите в папку, где лежат индексы. По крайней мере у меня в этой папке лежали все файлы дельт, но с расширением .new. Переименовал их руками, запустил индексатор на дельту и все стало на свои места.
Из-за оф.инфы что он работает с БД запутался. Счас исключил Бд и все заработало! Спасибо огромное автору темы и Rick.
Файлы дельты у меня есть с нормальными расширениями.
Сейчас у меня после индексации (индексируется все, кроме дельты) при запуске демона выдаются такие ошибки:
WARNING: index 'index_main': mlock() failed: Cannot allocate memory
WARNING: index 'index_main1': mlock() failed: Cannot allocate memory
И после этого индексатор не работает до остановки демона.
(говорит
indexing index 'index_main'...
FATAL: failed to lock /home/user/sphinx/index/main.spl: Resource temporarily unavailable, will not index. Try --rotate option.
)
Файлы дельты не нашел, в остальном с пропуском дельты indexer отработал нормально
Пожалуйста не забывайте использовать UNIX-socket , если вы используете sphinx на моем хостинге.
С Уважением, ЕГор
Тут увы уже ничем помочь не могу. Помню, ошибки возникали подобные, но только один раз. А чем вызваны были уже не помню. То ли sudo не было, то ли индекс неправильный был - честно не помню.
Rick, спасибо, mlock заработал под рутом.
Еще я удалил все индексы и создал по новой, и в итоге у меня теперь файлы дельты вообще не создаются)
Еще есть, гм, важный вопрос по модулю: он что, не поддерживает поиск по терминам таксономии?
Не за что! Я считаю, что после всех часов, что я пытался завести Сфинкс, я просто обязан поделиться опытом А то документации по нему (по модулю, а не сфинксу) кот наплакал...
По-умолчанию, поиск идет по полю с текстом ноды, а термины таксономии сохраняются в виде ID в . Т.к. модуль я переделывал, я менял выдачу данных для текста ноды (у меня в тексте остался только чистый текст без доп. CCK полей), но изначально в текст попадали имена термов, т.ч. можно считать, что модуль ищет и по термам, правда своим особым методом
Если нужен явный поиск по термам, но модифицируйте модуль:
1. Индексируйте доп. поле с именами термов
2. Дополните форму полем поиска термов, либо добавьте обработку к текущему (хотя я не уверен, что так получится)
3. Измените модуль, чтобы он обрабатывал это поле и выдавал результаты поиска по полю термов
Делал по мануалу. Т.е. дельта индекс не объявлял. Ситуация следующая.
XML-индексы движком выдаются.
Файлы индексов main0.xxx и main1.xxx создаются.
Переиндексация с консоли проходит успешно.
При попытке запустить демон:
creating server socket on 127.0.0.1:3312
failed to bind on 127.0.0.1:3312, retrying...
failed to bind on 127.0.0.1:3312, retrying...
failed to bind on 127.0.0.1:3312, retrying...
т.е. не может запуститься.
Поиск с консоли работает:
Sphinx 0.9.8.1-release (r1533)
Copyright (c) 2001-2008, Andrew Aksyonoff
using config file '/var/www/drupal/modules/sphinxsearch/daemon/sphinx.conf'...
index 'index_main0': query 'страница ': returned 2 matches of 2 total in 0.000 sec
displaying matches:
1. document=1, weight=2, nid=1, uid=1, created=Tue Feb 23 23:02:13 2010, last_updated=Tue Feb 23 23:06:49 2010, vid=(), is_deleted=0, main_index_id=0
2. document=2, weight=2, nid=2, uid=1, created=Wed Feb 24 00:20:44 2010, last_updated=Wed Feb 24 00:21:00 2010, vid=(), is_deleted=0, main_index_id=0
words:
1. 'страниц': 2 documents, 68 hits
index 'index_main1': query 'страница ': returned 2 matches of 2 total in 0.000 sec
displaying matches:
1. document=1, weight=2, nid=1, uid=1, created=Tue Feb 23 23:02:13 2010, last_updated=Tue Feb 23 23:06:49 2010, vid=(), is_deleted=0, main_index_id=0
2. document=2, weight=2, nid=2, uid=1, created=Wed Feb 24 00:20:44 2010, last_updated=Wed Feb 24 00:21:00 2010, vid=(), is_deleted=0, main_index_id=0
words:
1. 'страниц': 2 documents, 68 hits
И ещё подскажите пож. Что указывать в настройках модуля, в полях:
index name for queryes ?
и index name for building excepts ?
Sphinx indexer IP addresses: ?
Конфигурация:
Drupal: 6.15
Сфинкс: 0.9.8.1
Модуль sphinxsearch:
sphinxapi.php,v 1.1
sphinxsearch.xmlpipe.inc,v 1.4.2.3
Помогите плис
2. Модуль таксономии включен. А в xml файле, формируемом sphinxsearch_xmlpipe.php нет таксономии. Только документы без иерархии. Почему?
Спасибо за инструкцию. Правда у меня при индексировании возникает ошибка. Документов пока 9255.
using config file '/usr/local/etc/sphinx.conf'...
indexing index 'index_main0'...
WARNING: source 'source_main0': unexpected string 'Short on resources. Current memory usage is higher than 90% of P' (line=85438, pos=0) outside of and
WARNING: source 'source_main0': unexpected string ' PHP memory_limit: 268435456 bytes (262144 KB).' (line=85439, pos=0) outside of and
WARNING: source 'source_main0': unexpected string ' Initial memory usage: 10430096 bytes (10185.64 KB).' (line=85440, pos=0) outside of and
WARNING: source 'source_main0': unexpected string ' Current memory usage: 254047336 bytes (248093.1 KB).' (line=85441, pos=0) outside of and
ERROR: index 'index_main0': source 'source_main0': XML parse error: no element found (line=85443, pos=0, docid=5000).
total 4991 docs, 16300069 bytes
total 78.877 sec, 206650 bytes/sec, 63.27 docs/sec
indexing index 'index_main1'...
collected 0 docs, 0.0 MB
collected 0 attr values
sorted 0.0 Mvalues, nan% done
total 0 docs, 0 bytes
total 0.001 sec, 0 bytes/sec, 0.00 docs/sec
distributed index 'index_join' can not be directly indexed; skipping.
total 0 reads, 0.000 sec, 0.0 kb/call avg, 0.0 msec/call avg
total 4 writes, 0.000 sec, 0.1 kb/call avg, 0.0 msec/call avg
UPD.: проблему решил. У меня в конфиге для индексатора было выделено 512мб, соответственно отсюда были и ошибки.
UPD.: Чтобы создать дельту, нужно в конфиге написать:
source source_main_delta : source_main0
{
xmlpipe_command = /usr/bin/wget -O - -q -t 1 http://www.example.com/sphinxsearch_scripts/sphinxsearch_xmlpipe.php?mod...
}
index index_main_delta : index_main0
{
source = source_main_delta
path = /usr/local/sphinx/var/data/delta
}
500 тысч. записей. Нашел такое решение проблемы:
For PHP5 I was able to do this to put a plug in the memory leak:
In file sphinxsearch.xmlpipe.inc, function: sphinxsearch_xmlpipe_document
Just before return $output
--
// Loop thru the node object and destroy its members
foreach($node as $k => $v) {
unset($node->$k);
}
unset($node, $k, $v);
Подскажите, пожалуйста, sphinx можно настроить на поиск по нескольким определённым сайтам, как это делает, например, поиск Яндекса?
Нет, он не для этого, но вы можете попробовать так извратиться
Можно. Через xmlpipe настроить точно можно. Тогда у вас индекс будет лежать на одном сервере. Читайте документацию, она на английском но довольно легка в освоении. А вот код модуля придется хакнуть, он все-равно заброшен. Например, добавить аттрибут "адрес сайта" и делать в соответствии с ним вывод ссылок в результатах запроса.
Конечто при условии что все эти сайты ваши.
Если уж надо сделать поиск не по своим сайтам, можете совсем извратиться и написать парсер нужных вам сайтов, который будет собирать xmlpipe и скармливать его сфинксу.
Но все вышесказанное мной только теория, я такого не делал, ибо не было такой необходимости.
Сайты мои. При таких раскладах проще готовый поиск от гугл или яндекс...
Просто хотелось без рекламы.
FATAL: failed to open /usr/local/sphinx/var/data/main0.spl: No such file or directory, will not index. Try --rotate option.
кто то сталкивался ?
Это вы демон (searchd) запускали? Если так, то вы либо не запускали индексатор, либо он неправильно отработал, либо файлы индекса пропали, либо что-то еще связанное с файлами индекса.
Это после
Сначала необходимо запустить индексатор. Для этого используем следующий код:
/usr/bin/indexer --config /home/user/sphinx/config/sphinx.conf --all
Проверьте пути в конфигурационном файле. Возможно каталога /usr/local/sphinx/var/data/ просто не существует и индексатор не может поместить туда файлы индекса о чем и рапортует.
No such file or directory
Да таки пути были не верно указанны, теперь вот такая ошибка.
using config file '/home/sites/all/modules/sphinxsearch/docs/contrib/sphinx.conf'...
indexing index 'index_main0'...
ERROR: index 'index_main0': source 'source_main0' not found.
ERROR: index 'index_main0': no valid sources configured; skipping.
indexing index 'index_main1'...
ERROR: index 'index_main1': source 'source_main1' not found.
ERROR: index 'index_main1': no valid sources configured; skipping.
indexing index 'index_delta'...
ERROR: index 'index_delta': source 'source_delta' not found.
ERROR: index 'index_delta': no valid sources configured; skipping.
distributed index 'index_join' can not be directly indexed; skipping.
total 0 reads, 0.000 sec, 0.0 kb/call avg, 0.0 msec/call avg
total 0 writes, 0.000 sec, 0.0 kb/call avg, 0.0 msec/call avg
в настройках файла sphinx.conf
index index_main0
{
source = source_main0
path = /usr/bin/sphinx-indexer/main0
Выложите полностью конфиг
http://koff.com.ua/sphinx.rar
вот полностью конфиг
Почему индексатор не находит сорцы мне не совсем понятно.
Для начала попробуйте указать нормальный путь до первого индекса. В Вашем случае это будет /usr/local/sphinx/var/data/main0 вместо /usr/sbin/sphinx-searchd/main0, т.к. вообще-то /usr/sbin/sphinx-searchd - это обычно сам поисковый демон, а вы указываете его как каталог в конфиге.
Учтите что полный путь к бинарной програме демона: /usr/sbin/sphinx-searchd
Пробовал все варианты на индексирует = (
может всем виновная dev Версия
маловероятно, но всякое бывает.
indexing index 'index_main0'...
ERROR: index 'index_main0': xmlpipe: expected '', got 'Not authorized.
'.
total 0 docs, 0 bytes
total 0.000 sec, 0 bytes/sec, 0.00 docs/sec
исправил выставлением параметра $access_xmlpipe = TRUE; в sphinxsearch_xmlpipe.php
Подскажите плиз.
Все настроил, индекс создал, sphinxsearch_scripts/sphinxsearch_xmlpipe.php выдает все что надо с читаемым текстом.
А вот поиск работает только по английским словам, числам итп, а вот русские слова не воспринимает...в чем может быть дело?
укажите
в конфиге Вашего первого индекса.
Затем заново запустите индексатор.
А также
и
Спасибо за советы.
Но у меня все так и настроено. Все равно не хочет искать русский текст(
Где то на форумах видел, что был косяк с русскими запросами через GET.
В друпале ведь так же происходит /search-content?keys=плитка
...может в этом проблема?
Не дошли пока руки проверить через PHP API запросы отправить к сфинксу.
Отправьте через консоль.
search -c CONFIG_FILE.conf [query]
помогите с проблемой.
indexing index 'index_delta'...
ERROR: index 'index_delta': xmlpipe: expected '', got 'XMLPipe for delta index failed: Could not obtain list of main i'.
total 0 docs, 0 bytes
total 0.000 sec, 0 bytes/sec, 0.00 docs/sec
distributed index 'index_join' can not be directly indexed; skipping.
total 3 reads, 0.000 sec, 0.0 kb/call avg, 0.0 msec/call avg
total 13 writes, 0.000 sec, 1.5 kb/call avg, 0.0 msec/call avg
Это вовсе не проблема. Поисковый демон у вас должен запустится. Когда в дельте появятся данные, сообщения исчезнут.
понял, пытаюсь запустить поискового демон ...
[Sat Apr 30 03:09:53.122 2011] [13776] listening on all interfaces, port=3312
[Sat Apr 30 03:09:53.122 2011] [13776] bind() failed on 0.0.0.0, retrying...
[Sat Apr 30 03:09:56.122 2011] [13776] bind() failed on 0.0.0.0, retrying...
[Sat Apr 30 03:10:29.122 2011] [13776] FATAL: bind() failed on 0.0.0.0: Illegal seek
Тут уже как бы можно догадаться. Укажите параметр address в Вашем конфиге в разделе searchd. Попробуйте 127.0.0.1
vgoodvin спасибо за подсказки.
запускаю поискового демона
[Sat Apr 30 17:01:09.153 2011] [27638] WARNING: index 'index_join': no such local index 'index__main0' - SKIPPING LOCAL INDEX
[Sat Apr 30 17:01:09.153 2011] [27638] WARNING: index 'index_join': no such local index 'index__main1' - SKIPPING LOCAL INDEX
Тут я бы посмотрел на определение индекса index_join. Вероятно у вас отсутствуют индексы index__main0 и index__main1.
Почитайте документацию http://sphinxsearch.com/docs/manual-0.9.9.html. Она написана на сухом техническом английском. Я со своими знаниями языка на троечку без особых проблем прочитал.
Вот так новость. Вышел Sphinxsearch 2.0.1-beta. Что-то он все в бетах да в бетах.
вот так вот в конфиге.
index index_join
{
type = distributed
local = index__main0
local = index__main1
local = index_delta
}
Вы имели ввиду наверное search [query]?
Тоже не помогло...русские слова не ищет %(
Это и не должно было вашу проблему вылечить, это для проверки
Да все верно, исправил. Если и эта команда не находит русские слова, то я бы проверил приходят ли они вообще в индекс. Просмотрите генерируемый xmlpipe. Если там все ок и индексатор получает русский текст, а search его не находит, то советую изучить документацию и произвести настройку с нуля.
Смотрел вывод xmlpipe ... да, русский язык есть, кодировка UTF8, но дальше что то происходит и в индекс он похоже не попадает... ладно, спасибо вам большое, попозжей попробую заново все настроить, если получится - отпишусь)
Попробовал почитать манул но так и не понял как проверить отсутствуют индексы или нет.
еще такой вопрос скажите как работает в sphinxsearch faced search ? и работает он там вообще ?
когда я смотрел Ваш конфиг, индексы отсутствовали в конфигурации. Это я и имею в виду.
Это пакетные запросы (т.к. там не один запрос), каждый запрос с группировкой по атрибуту и сортировкой по количеству совпадений.
Вот пример http://api-meal.eu/memo/128-faceted-search-with-sphinx-and-php/
Сейчас пилится интеграция сфинкса для Search API. О результатах сообщу сюда. Будет здорово если кто-то поможет с тестированием.
запускаю индекс вроде без ошибок, прикрепил скрин.
но во вкладке модуля, Check connection всё теже ошибки.
еще такой вопрос после выполнения команды запуска searchd какие сообщения должы быть ?
у меня вот так [Tue May 10 14:21:40.106 2011] [13558] listening on 127.0.0.1:3312
Аналогичная ситуация.
Установил вместо 32M 256М.
Ошибка осталась, но поиск производится (чему рад!), но одновременно хочу узнать, на что тогда влияет верхняя запись о нехватке памяти?
Наткнулся на следующую проблему с индексацией в Sphinx.
Есть тринадцать индексов (index_main0 - index_main12) которые обрабатывают через sphinxsearch_xmlpipe ноды пачками по 1000 шт. Также есть дельта-индекс: index_delta
Суть трабла: первые два индекса (index_main0 и index_main1 а также index_main7 и index_main9) обрабатываются нормально. Данные втягиваются парсером, создаются индексные файлы. С остальными индексами грабли: индексер выдает ошибку следующего типа:
ERROR: index 'index_main2': source 'source_main2': XML parse error: no element found (line=20777, pos=0, docid=86987).
В чем может заключаться проблема такого "избирательного" сбоя, и как решить этот трабл?
Скачайте вручную XML-файл для этого проблемного индекса, посмотрите на указанную строку, там и разберетесь.
Два варианта:
1) Какая-то нода выдает ошибку пхп и отваливается при рендере, сделайте как vgoodvin пишет.
2) У пхп заканчивается память при индексации этой тысячи нод, надо разбить эту тысячу на 2 индекса по 500.
Сори, вовремя забыл отписаться. Проблема была как раз в том, что на одну серию индексации из 1000 нод не хватало памяти. Уменьшение количества элементов на одну серию индексации помогло решить задачу.
Не совсем по теме, поскольку к конфигурированию не совсем относится. Пытаюсь подружить Ubercart с поиском на основе Sphinx. Стоит задача выводить в результат поиска только те товары, которые имеют положительный остаток на складе.
Исходя из логики модул яsphinxsearch , нужно при вызове функции sphinxsearch_execute_query($search_options),который происходит в sphinxsearch_search_page(), передать дополнительный элемент в $search_options, который будет вносить ограничение с учетом наличия на складе.
Кто-то уже решал похожую задачу? Не хочется изобретать велосипед, если возможно существует решение задачи.
Помогите настроить сфинкс. Перенесли сайт, перестал работать поиск. Точнее на продакшин работает только основной, а доска объявлений перестала работать. Со сфинксом сам не сталкивался, a настроить нужно.
На локальной копии не работает вообще. Хотя бы запустить на локальном сервере для начала...
В модуле во втором тесте:
ERROR - Search query failed.
Sphinx message: index lk_delta_index,lk_main_index: sort-by attribute 'nid' not found
Индекс создан.
Демон запущен
Поиск из командной строки работает
Обращение к /usr/bin/wget -O - -q -t 1 http://127.0.0.1:80/sphinxsearch_scripts/sphinxsearch_xmlpipe.php?mode=main и командной строки результат выдает.
папка sphinxsearch_scripts в корне сайта
Индекс /home/XXX/sphinx/data (на локальном)
Файлы дельты присутствуют
Конфиг который был sphinx.zip
Доброго дня!
ОС Debian 6.
Sphinx 2.0.5
sphinxsearch 2.0
При попытке вызова indexer выдает следущее:
indexing index 'index_drupal_example_main0'...
WARNING: source 'source_drupal_example_main0': xmlpipe2 support NOT compiled in. To use xmlpipe2, install missing XML libraries, reconfigure, and rebuild Sphinx
ERROR: index 'index_drupal_example_main0': failed to configure some of the sources, will not index.
indexing index 'index_drupal_example_delta'...
ERROR: index 'index_drupal_example_delta': xmlpipe: expected '', got 'XMLPipe for delta index failed: Sphinx query index not specifie'.
Установил libexpat1-dev, переустанавливал sphinx (make clean)
Кто-нибудь сталкивался?
Переустановил еще раз sphinx. При запуске indexer получаю следующую ошибку: <? php и другие < > написал раздельно, но в сообщение написано слитно
/usr/local/sphinx/bin/indexer --all
using config file '/usr/local/sphinx/etc/sphinx.conf'...
indexing index 'index_main0'...
ERROR: index 'index_main0': xmlpipe: expected '< document >', got '<? php
/**
* @file
* Handles incoming requests from Sphinx in'.
total 0 docs, 0 bytes
total 0.000 sec, 0 bytes/sec, 0.00 docs/sec
indexing index 'index_delta'...
ERROR: index 'index_delta': xmlpipe: expected '< document>', got '<? php
/**
* @file
* Handles incoming requests from Sphinx in'.
total 0 docs, 0 bytes
total 0.000 sec, 0 bytes/sec, 0.00 docs/sec
skipping non-plain index 'index_join'...
total 0 reads, 0.000 sec, 0.0 kb/call avg, 0.0 msec/call avg
total 0 writes, 0.000 sec, 0.0 kb/call avg, 0.0 msec/call avg
P.S: распишите пожалуйста "интуитивно-понятные настройки"
Пробовал ставить версию 1.3, взятую с it-patrol. http://dh.it-patrol.ru/docs/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D...
Ссылка на модуль http://dh.it-patrol.ru/sites/drupalhosting.ru/files/sphinxsearch-1.3.tar.gz
Ошибка вся та же, судя по всему не формируется XML файл, сфинкс пытается прочесть его как XML, ожидая найти < document >, а получает <? php
При запуске sphinxsearch_xmlpipe.php с браузера индексация запускается нормально. Пробовал в конфиге использовать lynx, wget
Чего-то не хватает на сервере для запуска с командной строки?
Продолжаю ходить в настройках. Поставил sphinxsearch-2.0-dev версию. Со скриптом xmlpipe.php сфинкс вроде заводится лучше. Но ошибка с < document > есть, правда только в индексе дельты.
P.S: еще такой баг возник: когда запускаю в командной строке indexer, авторизация на сайте отваливается, всех залогиненных "выкидывает"
Ошибка indexer все еще актуальна:
Запуск searchd:
listening on all interfaces, port=9312
precaching index 'index_m0'
precaching index 'index_m1'
...
precaching index 'index_m12'
precaching index 'index_delta'
WARNING: index 'index_delta': preload: failed to open /usr/local/sphinx/data/delta.sph: No such file or directory; NOT SERVING
precached 14 indexes in 0.023 sec
Господа! А вот как эту проблему решить:
ERROR - Search query failed.
Sphinx message: searchd error: client version is higher than daemon version (client is v.1.25, daemon is v.1.22)
Оно проблема, что мне сам "Sphinx" сменять просто не получится. Может взять какую нибудь старенькую версию модуля?
Позже:
Эта проблема решена (установкой более ранней версии)
Но как теперь решить эту проблему:
ERROR - Search query failed.
Sphinx message: all remote agents unreachable and no available local indexes found
Testing excerpts builder using index source_main0.
ERROR - Unable to build excerpts.
Sphinx message: searchd error: unknown local index 'source_main0' in search request
Видимо проблема в индексах, indexer нормально срабатывает из консоли?
Индексатор срабатывает нормально, правда выдает одни нули. Честно говоря я уже плюнул на эту затею и сделал поиск на сочетание Views с rch_autocomplete-6.x-2.3
Моих мозгов на этот сфинкс не хватает (недаром он и сфинкс ) Вот бы лучше согласился бы автор топика проконсультировать меня за деньги.
Возник вопрос.
Сфинкс индексирует комментарии, или только содержимое ноды?
Это важно при поиске по форуму. Если комментарии не индексирует, то большая часть содержимого не будет в поиске, это плохо.
На странице модуля видел что можно настроить на CCK комментарии, значит работать должно по идее по крайней мере после настройки.
Не могу понять, в готовом видео он обрабатывает комментарии или нет.
В коде есть кусок про комментарии, но логику пока понять не смог.
Там вызывается функция
<?php
foreach ($main_indexes_info as $main_index_id => $main_index_info) {
// Load the nids we are about to process for current main index interval.
$nids = array();
$query_sql = 'SELECT n.nid FROM {node} n LEFT JOIN {node_comment_statistics} c ON c.nid = n.nid
WHERE '. implode(' AND ', array_filter(array('n.status = 1', sphinxsearch_get_enabled_node_types_condition('n')))) .'
AND GREATEST(IF(c.last_comment_timestamp IS NULL, 0, c.last_comment_timestamp), n.changed) > %d
AND n.nid >= %d';
$query_args = array($main_index_info['last_updated'], $main_index_info['first_nid']);
if ($main_index_id != $last_main_index_id) {
$query_sql .= ' AND n.nid <= %d';
$query_args[] = $main_index_info['last_nid'];
}
?>
но не пойму что это. Такое ощущение, что это для сортировки результатов поиска.
На странице модуля, написано что умеет индексировать комментарии.
Да, спросил в поддержке хостинга IT-Patrol где размещён сайт, ответили однозначно, что комментарии индексируются, но в результатах поиска ссылка на ноду.
Но это по сути и нужно.
Ай, Ай, Ай, Ай как же бедный индексатор будет индесировать ноду с 50 и более комментаиями.
Надеюсь всё получится хорошо.
Спасибо.
P.S
Слушайте, а как поисковой индексатор ведёт себя если ему попадаетсья удалённая нода.
Нашёл у себя глюк, происходит индексация до ноды 99, а если запустить с сотой то всё идёт до конца.
Открываю ноду 99, страница не найдена. Вероятно нода была удалена.
Кто-нибудь с таким сталкивался.
Это глюк движка не доконца удалившего ноду, или глюк индексатора который спотыкаеться на несуществующей ноде, если её удалить?
Буду разбераться сам. Если нарою напишу.
P.P.S
Разобрался. Дело было не в ноде идущей за последней проиндексированной 98, а следующей после группы удалённых нод. Это была нода с опросом.