Full text search con thinking sphinx

Posted by mauro on Mar 31, 2009 in Rails |

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

Reply

Copyright © 2010 Chebyte’s Blog All rights reserved.