Sphinx es un motor de búsqueda de texto completo de alto rendimiento basado en SQL. El rendimiento de Sphinx está entre los mejores de muchos motores de búsqueda de texto completo. Con Sphinx, podemos realizar funciones de búsqueda más profesionales que las de la propia base de datos, y además podemos realizar muchas optimizaciones de rendimiento específicas.

Características de Sphinx
- Creación rápida de índices: se puede crear un índice de casi 1 millón de registros en unos 3 minutos, y al adoptar el método de índice incremental, la reconstrucción del índice es muy rápida.
- Velocidad de búsqueda relámpago: incluso con una gran cantidad de datos de 10 millones de registros, la velocidad de consulta es de nivel de milisegundos; en un volumen de texto de 2-4 GB, la velocidad promedio de consulta es inferior a 0.1 segundos.
- Se han diseñado API de búsqueda para muchos lenguajes de script, como PHP, Python,PerlRuby, etc. Por lo tanto, puede invocar convenientemente las interfaces relacionadas de Sphinx en la mayoría de las aplicaciones de programación.
- Se ha diseñado un complemento de motor de almacenamiento para MySQL, por lo que si usa Sphinx en MySQL, será extremadamente conveniente.
- Admite búsqueda distribuida y puede escalar horizontalmente el rendimiento del sistema.
Diagrama de arquitectura del motor de búsqueda PHP+MySQL+Sphinx

Instalar Sphinx en MySQL
Hay dos formas de instalar Sphinx en MySQL:
- La primera forma es mediante llamadas a la API. Podemos usar PHP, Python,PerlRuby y otros lenguajes de programación para realizar consultas. Este método no requiere recompilar MySQL, los cambios entre módulos son relativamente menores y es más flexible.
- La segunda requiere recompilar MySQL e integrar Sphinx en MySQL como un complemento. Este método implica menos cambios en el programa; solo necesita modificar las declaraciones SQL, pero la premisa es que su versión de MySQL debe ser 5.1 o superior.
A continuación se muestra la primera forma de instalación:
#下载最新稳定版 wget http://www.sphinxsearch.com/downloads/sphinx-0.9.9.tar.gz tar xzvf sphinx-0.9.9.tar.gz cd sphinx-0.9.9 ./configure --prefix=/usr/local/sphinx/ --with-mysql --enable-id64 make make install
Instalación del complemento de segmentación de chino de Sphinx: Coreseek
Nota: el tutorial de instalación de coreseek proviene deaquí, a continuación se muestra el proceso detallado:
Instalar y actualizar autoconf
Debido a que coreseek requiere autoconf versión 2.64 o superior, es necesario actualizar autoconf; de lo contrario, se producirán errores. Desdehttp://download.chinaunix.net/download.php?id=29328&ResourceID=648Descargue autoconf-2.64.tar.bz2, el método de instalación es el siguiente:
tar -jxvf autoconf-2.64.tar.bz2 cd autoconf-2.64 ./configure make make install
Descargar coreseek
La nueva versión de coreseek incluye el diccionario y el código fuente de sphinx en un solo paquete, por lo que solo necesita descargar el paquete de coreseek.
wget http://www.wapm.cn/uploads/csft/3.2/coreseek-3.2.14.tar.gz
Instalar mmseg (el diccionario utilizado por coreseek)
tar xzvf coreseek-3.2.14.tar.gz cd mmseg-3.2.14 ./bootstrap #输出的warning信息可以忽略,如果出现error则需要解决 ./configure --prefix=/usr/local/mmseg3 make && make install cd ..
Instalar coreseek (sphinx)
cd csft-3.2.14 sh buildconf.sh #输出的warning信息可以忽略,如果出现error则需要解决 ./configure --prefix=/usr/local/coreseek --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg3/lib/ --with-mysql make && make install cd ..
Probar la segmentación de mmseg y la búsqueda de coreseek
Nota: es necesario configurar previamente el conjunto de caracteres como zh_CN.UTF-8 para garantizar la correcta visualización del chino. También es válido que mi conjunto de caracteres del sistema sea en_US.UTF-8.
cd testpack cat var/test/test.xml #此时应该正确显示中文 /usr/local/mmseg3/bin/mmseg -d /usr/local/mmseg3/etc var/test/test.xml /usr/local/coreseek/bin/indexer -c etc/csft.conf --all /usr/local/coreseek/bin/search -c etc/csft.conf 网络搜索 此时正确的应该返回 words: 1. '网络': 1 documents, 1 hits 2. '搜索': 2 documents, 5 hits
Generar el diccionario y el archivo de configuración de mmseg
La nueva versión ya lo genera automáticamente.
Resumen
Sphinx, como motor de búsqueda de texto completo SQL de alto rendimiento, merece la atención continua de los desarrolladores, especialmente su soporte de API en varios idiomas, que facilita su aplicación por parte de los desarrolladores.
Fuente:http://www.codeceo.com/article/sphinx-sql-search-engine.html
Autor: Red de programadores – Xiaofeng