Estoy buscando un servidor de búsqueda de texto completo independiente con las siguientes propiedades:
- Debe funcionar como un servidor independiente que puede atender solicitudes de búsqueda de múltiples clientes
- Debe poder realizar una "indexación masiva" indexando el resultado de una consulta SQL: diga "SELECCIONAR ID, text_to_index FROM documentos;"
- Debe ser software libre y debe ejecutarse en Linux con MySQL como base de datos
- Debe ser rápido (descarta la búsqueda interna de texto completo de MySQL)
Las alternativas que he encontrado que tienen estas propiedades son:
- Solr (basado en Lucene)
- ElasticSearch (también basado en Lucene)
- Esfinge
Mis preguntas:
- ¿Cómo se comparan?
- ¿Me he perdido alguna alternativa?
- Sé que cada caso de uso es diferente, pero ¿hay ciertos casos en los que definitivamente no quisiera usar un paquete determinado?
Respuestas:
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 los documentos u otras personas. También tomaré parches para mi respuesta :-)
Similitudes:
Aquí hay algunas diferencias:
java -jar start.jar
). Sphinx no tiene configuración adicional.Preguntas relacionadas:
fuente
A menos que necesite ampliar la funcionalidad de búsqueda de cualquier forma patentada, Sphinx es su mejor opción.
Ventajas de la esfinge:
Ventajas de Solr:
fuente
Nota: Hay muchos usuarios con la misma pregunta en mente.
Entonces, para responder al punto:
¿Cuál y por qué?
Use Solr si tiene la intención de usarlo en su aplicación web (motor de búsqueda de sitios de ejemplo). Definitivamente resultará genial, gracias a su API. Definitivamente necesitará ese poder para una aplicación web.
Use Sphinx si desea buscar toneladas de documentos / archivos muy rápido. También indexa muy rápido. Recomendaría no usarlo en una aplicación que incluya JSON o analizar XML para obtener los resultados de búsqueda. Úselo para búsquedas directas de dB. Funciona muy bien en MySQL.
Alternativas
Aunque estos son los gigantes, hay muchos más. Además, hay quienes los utilizan para potenciar sus marcos personalizados. Entonces, diría que realmente no te has perdido ninguno. Aunque hay una búsqueda elástica que tiene una buena base de usuarios.
fuente
He estado usando Sphinx durante casi un año y ha sido increíble. Puedo indexar 1,5 millones de documentos en aproximadamente un minuto en mi MacBook, e incluso más rápido en el servidor. También estoy usando Sphinx para limitar las búsquedas a lugares dentro de latitudes y longitudes específicas, y es muy rápido. Además, cómo se clasifican los resultados es muy modificable. Fácil de instalar y configurar, si lees uno o dos tutoriales. Casi el estado 1.0, pero sus candidatos de lanzamiento han sido sólidos como una roca.
fuente
Lucene / Solr parece ser más destacado y con años más largos en el negocio y una comunidad de usuarios mucho más fuerte. En mi humilde opinión, si puedes superar los problemas de configuración inicial, ya que algunos parecen haber enfrentado (no nosotros), entonces diría que Lucene / Solr es tu mejor opción.
fuente