Sphinx (buscador)
# Sphinx (buscador)

Sphinx es un motor de búsqueda abierto diseñado con el fin de indexar contenidos de bases de datos. Actualmente admite de manera nativa MySQL, PostgreSQL y bases de datos ODBC. Otras fuentes de datos pueden ser indexadas mediante el apropiado filtro XML. Se distribuye en los términos GPLv2 de GNU o con licencia privativa.

Desde la versión 0.9.9, se le puede interrogar usando SphinxQL, un subconjunto de SQL. A partir de la versión 1.10-beta, soporta tanto indexación incremental como en lote.

Sphinx forma parte de más de 100 sitios y servicios web, incluyendo Craigslist.org.

## Características

* indexación por lotes e incremental
* soporte para atributos no textuales (escalares, cadenas, conjuntos)
* indexación directa de bases de datos SQL
* soporte nativo para MySQL, PostgreSQL, MSSQL, además de conectividad ODBC
* soporte a la indexación de documentos XML
* soporte para búsqueda distribuida
* integración mediante APIs
* sintaxis SQL vía protocolo MySQL (desde 0.9.9)
* sintaxis para búsqueda de texto completo
* resultados en estilo base de datos
* relevancia de resultados utilizando factores adicionales al estándar BM25
* soporte para textos codificados en ISO 8859 y UTF-8, palabras prohibidas (stopwords), indexación de palabras que no aparecen en los resultados, procedencia, formas de la misma palabra, agrupamiento de caracteres y caracteres mixtos (doble indexación como carácter real y separador)
* soporta funciones definidas por el usuario (desde 2.0.1)

## Prestaciones y escalabilidad

* Velocidad de indexación hasta 10-15 MB/sec por núcleo y disco
* Velocidad de búsqueda hasta 200-300 peticiones/s en una colección de 1000000 documentos ocupando 1.2 GB
* Las aplicaciones y producción más grandes indexan 8.1 billón de documentos, la aplicación más activa (craigslist) sirve más de 50 millones de peticiones al día
