Мышление Сфинкс - ошибки, когда я пытаюсь переиндексировать? - PullRequest
3 голосов
/ 27 октября 2011

Хорошо, у меня на сервере есть приложение rails, и у меня установлено inking shinx . Каждый день в 12:30 я запускаю задание cron, которое усекает таблицы учетных записей и контактов и вставляет их заново ... вот мои кроны

30 0 * * * /bin/bash -l -c 'cd /var/www/active && script/rails runner -e production '\''Account.db_insert'\$
34 0 * * * /bin/bash -l -c 'cd /var/www/active && RAILS_ENV=production bundle exec rake ts:index --silent'
34 0 * * * /bin/bash -l -c 'cd /var/www/active && RAILS_ENV=production bundle exec rake ts:restart --silent'

Как вы можете видеть, crons выполняет Account.db_insert, который повторно вставляет контакты и учетные записи, но каждый день я получаю электронное письмо с ошибкой .... вот два, которые я недавно получил ...

Вчерашняя ошибка

using config file '/var/www/active/config/production.sphinx.conf'...
indexing index 'contact_core'...
FATAL: failed to lock /var/www/active/db/sphinx/production/contact_core.spl: Resource temporarily unavailable, will not index. Try --rotate option.

Сегодняшняя ошибка

using config file '/var/www/active/config/production.sphinx.conf'...
indexing index 'contact_core'...
collected 403 docs, 0.0 MB
sorted 0.1 Mhits, 100.0% done
ERROR: index 'contact_core': rename /var/www/active/db/sphinx/production/contact_core.tmp.spl to /var/www/active/db/sphinx/production/contact_core.new.spl failed: No such file or directory.
total 403 docs, 25092 bytes
total 0.069 sec, 361571 bytes/sec, 5807.16 docs/sec
distributed index 'contact' can not be directly indexed; skipping.
total 5 reads, 0.001 sec, 133.7 kb/call avg, 0.2 msec/call avg
total 10 writes, 0.012 sec, 177.8 kb/call avg, 1.2 msec/call avg

Любая идея, что я делаю неправильно ....

UPDATE

После предложения запустить

 /usr/local/bin/indexer --config /etc/sphinxsearch/sphinx.conf --all --rotate

Я получил эту ошибку

 using config file '/etc/sphinxsearch/sphinx.conf'...
 ERROR: unknown key name 'client_timeout' in /etc/sphinxsearch/sphinx.conf line 591 col 16.
 FATAL: failed to parse config file '/etc/sphinxsearch/sphinx.conf'.

1 Ответ

4 голосов
/ 27 октября 2011

Как указывает сообщение об ошибке, вы можете запустить индексатор с ключом --rotate.

Я тоже использую Thinking Sphinx, но мне было проще просто напрямую использовать индексатор Sphinx. У меня есть Thinking Sphinx, сгенерировавший мою конфигурацию для меня, затем я могу просто вызвать searchd и indexer напрямую, в моем cron:

*/30 * * * * /usr/local/bin/indexer --config /etc/sphinxsearch/sphinx.conf --all --rotate

Я обнаружил, что это более полезно, чем выполнение заданий по рейку. Кроме того, это намного быстрее, поскольку весь стек Rails загружать не нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...