Full text search con thinking sphinx
Sphinx es un excelente motor de busquedas que nos permite hacer consultas ultra optimizadas en nuestras applicaciones.
Gracias al plugin Thinking sphinx podemos portar este motor a nuestra aplicacion rails. A continuacion los pasos para configurar nuestra aplicacion con thinking sphinx
Instalar Sphinx
Si van a usar como motor de base de datos mysql asegurarse de tener instalado las librerias de mysql
sudo apt-get install libmysqlclient15-dev
Bajamos la source desde http://sphinxsearch.com/ version recomendada (0.9.8.1)
wget http://sphinxsearch.com/downloads/sphinx-0.9.8.1.tar.gz
Descomprimir el codigo
tar -xvzf sphinx-0.9.8.1.tar.gz
Compilamos
cd sphinx-0.9.8.
sphinx-0.9.8# ./configure
sphinx-0.9.8# make
sphinx-0.9.8# make install
Instalamos thinking sphinx
./script/plugin install git://github.com/freelancing-god/thinking-sphinx.git
Configurando thinking sphinx
En el modelo
En el controller
Si tenemos varias aplicaciones utilizando sphinx puede ser que tengamos problemas debido que sphinx corre como demonio utilizando el puerto 3112 por defecto.
Podriamos cambiar esto editando la opcion “port” dentro del archivo config/sphinx.conf. Tambien hay que decirle a thinking sphinx en que puerto debe buscar a sphinx, para esto creamos el siguiente archivo
Iniciando thinking sphinx
En thinking sphinx tenemos disponibles las siguientes tareas
rake thinking_sphinx:configure # Generate the Sphinx configuration file using Thinking Sphinx’s settings
rake thinking_sphinx:delayed_delta # Process stored delta index requests
rake thinking_sphinx:index # Index data for Sphinx using Thinking Sphinx’s settings
rake thinking_sphinx:restart # Restart Sphinx
rake thinking_sphinx:running_start # Stop if running, then start a Sphinx searchd daemon using Thinking Sphinx’s settings
rake thinking_sphinx:start # Start a Sphinx searchd daemon using Thinking Sphinx’s settings
rake thinking_sphinx:stop # Stop Sphinx using Thinking Sphinx’s settings



