Estoy usando acts_as_ferret. Es fácil de configurar y generalmente rápido. La funcionalidad integrada de búsqueda de registros activos es bastante útil: puede aplicar cualquier condición o unirse a otros modelos luego de que su búsqueda encuentre los registros coincidentes.
A diferencia de sphinx, no tiene que volver a indizar TODOS sus registros cuando agrega datos nuevos. Hay hooks after_save y after_update que insertarán tu nuevo registro en el db hurón. Este fue uno de los grandes puntos de venta para mí.
Cuando tiene que indexar sus datos en masa, el hurón es definitivamente más lento que acts_as_sphinx (por un factor de 3). Terminé escribiendo mi propio método para volver a indexar modelos que funcionan tan rápido como sphinx: básicamente precarga todos los datos de la base de datos en lugar de ir registrando por registro para crear el nuevo índice.
La documentación del hurón es buena para los aspectos básicos, pero es un poco escasa una vez que entra en búsquedas más complejas, ordena y utiliza un servidor dRb para alojar un índice remoto. Dicho esto, se siente un producto mucho más maduro que actúa como una esfinge, aunque tengo una experiencia limitada con la esfinge.
Curioso, si ambos tienen soporte para contenido geográfico, ¿por qué "usar Thinking Sphinx en proyectos nuevos y UltraSphinx en proyectos que usan contenido geo"? –