К сожалению, ThinkingSphinx не подходит для DataMapper (хотя говорят, что поддержка запланирована). Мы используем индексы реального времени, поэтому нам нужен как минимум Sphinx версии 1.1 (на самом деле мы работаем с версией 2.0, но 1.1 все равно должна работать нормально). Я видел dm-sphinx-adapter, но это выглядит неуправляемым и очень похоже на взлом (вы извлекаете идентификаторы вручную, а затем выполняете поиск в обычном режиме ... что заставляет меня задуматься о том, что адаптер даже предлагает).
Что-нибудь еще, возможно, я не видел? :)
РЕДАКТИРОВАТЬ | Хм, на самом деле, чей-то форк dm-sphinx-adapter имеет более приятный README, который дает некоторые варианты. Использование плагина is :searchable
делает все немного лучше. Но я по-прежнему стремлюсь увидеть больше вариантов с привлекательным API, который лучше подходит для стандартных соглашений DataMapper.
РЕДАКТИРОВАТЬ 2 | dm-sphinx-adapter - это мертвый проект. Поскольку Riddle (клиент с чистым рубином, используемый ThinkingSphinx) является открытым исходным кодом, я думаю, что я начну писать свой собственный. Не похоже, что там что-то есть.