Sphinx es un motor de búsqueda gratuito y de código abierto que se puede integrar en varias aplicaciones web para proporcionar resultados de búsqueda rápidos y de alta calidad.
Este artículo te mostrará cómo instalar Sphinx para indexar y buscar en una base de datos MariaDB sobre un servidor CentOS 7.
Paso 1: actualiza tu sistema
sudo yum update -y && sudo reboot
Una vez finalizado el reinicio del sistema, usa el mismo usuario sudo para iniciar sesión nuevamente.
Paso 2: instalar y configurar MariaDB
Sphinx es compatible con varias fuentes de datos, como bases de datos SQL (MySQL, MariaSQL, ...), archivos de texto plano, archivos HTML, etc. Aquí, veremos cómo usar Sphinx para realizar búsquedas en una base de datos MariaDB.
Instala MariaDB usando YUM:
code>sudo yum install mariadb mariadb-server
Inicia el servicio MariaDB:
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
Por motivos de seguridad, realiza la instalación segura de MySQL:
sudo /usr/bin/mysql_secure_installation
Responde a todas las preguntas que realizará la instalación con "Y".
Una vez finalizada la instalación segura de MySQL, deberás establecer una nueva contraseña para el usuario "root" de MySQL.
Paso 3: instala la última versión de Sphinx
Para instalar la última versión de Sphinx, debes descargar el paquete rpm adecuado del sitio web oficial de Sphinx:
cd ~
wget http://sphinxsearch.com/files/sphinx-2.2.10-1.rhel7.x86_64.rpm
sudo yum install sphinx-2.2.10-1.rhel7.x86_64.rpm
Paso 4: crea una base de datos para probar
Utiliza los siguientes comandos de MySQL para crear una base de datos llamada "test":
mysql -u root -p -e "CREATE DATABASE test"
Ahora, importa los datos de prueba de un archivo sql para la prueba:
mysql -u root -p test < /usr/share/doc/sphinx-2.2.10/example.sql
Nuevamente, ingrese la misma contraseña y luego presione Enter para finalizar la importación.
Paso 5: configurar Sphinx
Abre el archivo de configuración de Sphinx /etc/sphinx/sphinx.conf:
sudo vi /etc/sphinx/sphinx.conf
Por ahora, solo necesitas configurar el nombre de usuario de MySQL sql_user y la contraseña sql_pass, que sería:
sql_user = root
sql_pass = yourpassword
Guardar y Salir.
Paso 6: Inicia el indexador
Tanto el indexador como el buscador son componentes importantes de Sphinx. Indexer se encarga de recopilar datos de la fuente de datos, y searchd es la parte del motor de búsqueda que realmente maneja las búsquedas.
Asegúrate de ejecutar los siguientes comandos de manera ordenada o encontrará errores.
sudo indexer --all
sudo searchd
Para actualizar los índices:
/usr/bin/indexer --rotate --config /etc/sphinx/sphinx.conf --all