He estado usando Solr con éxito durante casi 2 años y nunca he usado Sphinx, por lo que obviamente soy parcial. Sin embargo, intentaré mantenerlo objetivo citando a los documentos oa otras personas. También aplicaré parches a mi respuesta :-)
Similitudes:
- Tanto Solr como Sphinx satisfacen todos sus requisitos. Son rápidos y están diseñados para indexar y buscar grandes cantidades de datos de manera eficiente.
- Ambos tienen una larga lista de sitios de alto tráfico que los usan (Solr , Esfinge )
- Ambos ofrecen soporte comercial. (Solr , Esfinge )
- Ambos ofrecen vinculaciones de API de cliente para varias plataformas/idiomas (Sphinx , Solr )
- Ambos se pueden distribuir para aumentar la velocidad y la capacidad (Sphinx , Solr )
Aquí hay algunas diferencias:
- Solr, al ser un proyecto Apache, obviamente tiene licencia Apache2. Sphinx es GPLv2 . Esto significa que si alguna vez necesita integrar o ampliar (no solo "usar") Sphinx en una aplicación comercial, tendrá que comprar una licencia comercial (fundamento )
- Solr es fácilmente integrable en aplicaciones Java.
- Solr se basa en Lucene, que es una tecnología comprobada sobre 8 años con un enorme base de usuarios (esto es solo una pequeña parte). Cada vez que Lucene obtiene una nueva característica o una aceleración, Solr también la obtiene. Muchos de los desarrolladores que se comprometen con Solr también lo son con Lucene.
- Sphinx se integra más estrechamente con RDBMS, especialmente MySQL.
- Solr se puede integrado con Hadoop para crear aplicaciones distribuidas
- Solr se puede integrado con Nutch para construir rápidamente un motor de búsqueda web de pleno derecho con rastreador .
- Solr puede indexar formatos propietarios como Microsoft Word, PDF, etc. . Sphinx no puede .
- Solr viene con un corrector ortográfico listo para usar .
- Solr viene con soporte de facetas listo para usar . Hacer facetas en Sphinx requiere más trabajo .
- Sphinx no permite actualizaciones de índice parcial para datos de campo .
- En Sphinx, todas las identificaciones de documentos deben ser números enteros únicos sin signo distintos de cero numeros . Solr ni siquiera requiere una clave única para muchas operaciones y las claves únicas pueden ser números enteros o cadenas.
- Solr admite colapso de campo (actualmente solo como un parche adicional) para evitar la duplicación de resultados similares. Sphinx no parece proporcionar ninguna característica como esta.
- Si bien Sphinx está diseñado para recuperar solo ID de documentos , en Solr puede obtener directamente documentos completos con prácticamente cualquier tipo de datos, lo que lo hace más independiente de cualquier almacenamiento de datos externo y ahorra el viaje de ida y vuelta adicional.
- Solr, excepto cuando se usa incrustado, se ejecuta en un contenedor web Java
como Tomcat o Jetty, que requieren configuración y ajustes específicos adicionales
(o puede usar el Jetty incluido
y simplemente inícielo con
java -jar start.jar
). Sphinx no tiene configuración adicional.
Preguntas relacionadas:
- Búsqueda de texto completo con Rails
- ¿Comparación del motor de búsqueda de texto completo:Lucene, Sphinx, Postgresql, MySQL?