Загадки сфинкса

Идентификаторы id индекса Sphinx могут быть только целыми числами. Нельзя использовать строки или составные идентификаторы. Но диапазона 1 – 232 для идентификаторов может не хватить, если, например, нужно построить sphinx-индекс для MySQL-таблицы с составным первичным индексом (например, post_id и user_id – где возможны одинаковые post_id для разных user_id) можно использовать функцию id= F(post_id, user_id) с большими целыми значениями (если значение id превысят 232, то строки c такими id не попадут в индекс sphinx).

Чтобы Sphinx мог работать с большими числами, нужно его перекомпилировать:
./configure --enable-id64

Однако, после перекомпиляции searchd не запустился, ругнувшись в лог с ошибкой:

FATAL: USE_64BIT inconsistency (binary=1, binlog=0); recovery requires previous binary version

.

Решить проблему помогло удаление логов, оставшихся от прежней версии (подсказка тут).

После первоначальной компиляции sphinx не заработал из-за того, что дефолтная директория для логов /var/data не существовала.

Leave a Reply

Your email address will not be published. *
You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>