Instalar Sphinx Search Engine en Ubuntu

Sphinx es un motor de búsqueda abierto diseñado con el fin de indexar contenidos de bases de datos. Nos permite que las búsquedas sean mucho más rápidas gracias a la indexación de contenido y de esta forma hacer buscadores optimizados para grandes cantidades de usuarios.

Veamos como instalar Sphinx Search Engine en Ubuntu.

Instalar Sphinx es muy sencillo, en primer lugar añadimos el repositorio:

add-apt-repository ppa:builds/sphinxsearch-daily

Actualizamos los repositorios:

aptitude update

Instalamos Sphinx:

aptitude install sphinxsearch

Los ficheros que configuraremos están en /etc/sphinxsearch

cd /etc/sphinxsearch

Ahora crearemos la base de datos de prueba que viene con Sphinx para probar su funcionamiento:

mysql -u root –p
CREATE DATABASE test;
exit
mysql -u root -p < example.sql

El siguiente paso es crear el fichero de configuración principal de Sphinx, copiamos el que viene por defecto con el nombre sphinx.conf:

cp sphinx-min.conf.dist sphinx.conf
nano sphinx.conf

Lo editamos con nano por ejemplo y lo dejamos de la siguiente manera:

source src1
{
# Configuración base de datos
	type			= mysql

	sql_host		= localhost
	sql_user		= root
	sql_pass		= password
	sql_db			= test
	sql_port		= 3306	# optional, default is 3306

# Consulta principal que trae todos los registros
	sql_query		= \
		SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content \
		FROM documents

	sql_attr_uint		= group_id
	sql_attr_timestamp	= date_added

	sql_query_info		= SELECT * FROM documents WHERE id=$id
}


index test1
{
	source			= src1
	path			= /var/lib/sphinxsearch/data/test1
	docinfo			= extern
	charset_type		= sbcs
}


index testrt
{
	type			= rt
	rt_mem_limit		= 32M

	path			= /var/lib/sphinxsearch/data/testrt
	charset_type		= utf-8

	rt_field		= title
	rt_field		= content
	rt_attr_uint		= gid
}


indexer
{
	mem_limit		= 32M
}


searchd
{
	listen			= 9312
	listen			= 9306:mysql41
	log			= /var/log/sphinxsearch/searchd.log
	query_log		= /var/log/sphinxsearch/query.log
	read_timeout		= 5
	max_children		= 30
	pid_file		= /var/run/sphinxsearch/searchd.pid
	max_matches		= 1000
	seamless_rotate		= 1
	preopen_indexes		= 1
	unlink_old		= 1
	workers			= threads # for RT to work
	binlog_path		= /var/lib/sphinxsearch/data
}

Ahora lo que haremos es indexar los resultados de la base de datos, ejecutando el comando:

indexer --config /etc/sphinxsearch/sphinx.conf --all

instalar sphinx search engine en Ubuntu

Ahora comprobamos que las búsquedas funcionan correctamente, con el comando:

search --config /etc/sphinxsearch/sphinx.conf one two document

instalar sphinx search engine en Ubuntu searchd

También tenemos disponible el servicio sphinxsearch que podemos parar, iniciar o reiniciar.

Ahora ya tenemos listo Sphinx para hacer un buscador utilizando su API en PHP por ejemplo.

Más información:
Sphinx Search Sitio oficial
Rebuilding Sphinx Index
Does Sphinx auto update is index when you add data to your sql
Busquedas Full Text con esteroides
indexar las busquedas full text con sphinx tutorial como usar sphinx/

Víctor Robles WEB

Autor: Victor

Desarrollador web - Formador online - Blogger

Compartir este post