Elegir un servidor de búsqueda de texto completo independiente: Sphinx o SOLR? [cerrado]


Estoy buscando un servidor de búsqueda de texto completo independiente con las siguientes propiedades:

  • Debe funcionar como un servidor independiente que pueda servir solicitudes de búsqueda de múltiples clientes
  • Debe ser capaz de hacer" indexación masiva "indexando el resultado de una consulta SQL: diga" SELECT id, text_to_index FROM documents; "
  • Debe ser software libre y debe ejecutarse en Linux con MySQL como base de datos
  • Debe ser rápido (descarta el texto completo interno de MySQL buscar)

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 quiero usar un paquete determinado?
Author: Andy Lester, 2009-08-16

5 answers

He estado usando Solr con éxito durante casi 2 años, y nunca he usado Sphinx, así que obviamente estoy sesgado. Sin embargo, trataré de mantenerlo objetivo citando los documentos u otras personas. También llevaré 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 cuerpos 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 enlaces API cliente para varias plataformas / lenguajes (Sphinx, Solr )
  • Ambos se pueden distribuir para aumentar la velocidad y la capacidad (Sphinx, Solr )

Aquí hay algunas diferencias:

Preguntas relacionadas:

 323
Author: Mauricio Scheffer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:09:56

A menos que necesite ampliar la funcionalidad de búsqueda de cualquier manera propietaria, Sphinx es su mejor opción.

Ventajas de la esfinge:

  1. El desarrollo y la configuración son más rápidos
  2. Agregación mucho mejor (y más rápida). Esta fue la característica asesina para nosotros.
  3. No XML. Esto es lo que finalmente descartó Solr para nosotros. Tuvimos que devolver conjuntos de resultados bastante grandes (piense en cientos de resultados) y luego agregarlos nosotros mismos ya que la agregación Solr carecía. La cantidad de tiempo para serializar hacia y desde XML simplemente mató el rendimiento. Para conjuntos de resultados pequeños, sin embargo, estaba perfectamente bien.
  4. La mejor documentación que he visto en una aplicación de código abierto

Ventajas de Solr:

  1. Se puede ampliar.
  2. Puede hacerlo directamente desde una aplicación web, es decir, puede hacer que las búsquedas similares a autocompletar lleguen al servidor Solr directamente a través de AJAX.
 47
Author: larf311,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-08-16 13:11:25

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á ser genial, gracias a su API. Definitivamente necesitarás ese poder para una aplicación web.

  • Utilice Sphinx si desea buscar a través de toneladas de documentos/archivos muy rápido. También indexa muy rápido. Me recomendaría no usarlo en una aplicación que implique JSON o analizar XML para obtener los resultados de búsqueda. Uso directo dB búsquedas. Funciona muy bien en MySQL.

Alternativas

Aunque estos son los gigantes, hay muchos más. Además, hay aquellos que usan estos para potenciar sus marcos personalizados. Así que, yo diría que realmente no te has perdido ninguno. Aunque hay un elasticsearch que tiene una buena base de usuarios.

 20
Author: Augiwan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-29 07:56:04

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 lee un tutorial o dos. Casi el estado 1.0, pero sus Candidatos de Lanzamiento han sido sólidos como una roca.

 19
Author: lo_fye,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-08-16 13:21:22

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 puede superar los problemas de configuración iniciales, ya que algunos parecen haberse enfrentado (no nosotros), diría que Lucene / Solr es su mejor opción.

 2
Author: Angsuman Chakraborty,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-12-13 04:57:36