La elección de un servidor de búsqueda de texto completo independiente: Sphinx o SOLR? [cerrado]

StackOverflow https://stackoverflow.com/questions/1284083

Pregunta

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

  • Debe funcionar como un servidor independiente que puede servir solicitudes de búsqueda de varios clientes
  • Debe ser capaz de hacer "indexación mayor" indexando el resultado de una consulta SQL: decir "SELECT ID, text_to_index a partir de documentos;"
  • Debe ser software libre y debe ejecutarse en Linux con MySQL como base de datos
  • Debe ser rápido (excluye búsqueda de texto completo interna de MySQL)

Las alternativas que he encontrado que tienen estas propiedades son:

  • Solr (basado en Lucene)
  • Elasticsearch (también basado en Lucene)
  • Sphinx

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 sin duda me no que desee utilizar un determinado paquete?
¿Fue útil?

Solución

He estado usando Solr con éxito durante casi 2 años, y nunca he utilizado Esfinge, así que estoy obviamente sesgada. Sin embargo, voy a tratar de mantenerlo objetivo citando los documentos u otras personas. También me quedo con parches a mi respuesta: -)

Las similitudes:

  • Tanto Solr y la Esfinge satisfacer todas sus necesidades. Son rápidos y diseñado para indexar y buscar grandes masas de datos de manera eficiente.
  • Ambos tienen una larga lista de sitios de alto tráfico de usarlos ( Solr , Sphinx )
  • Ambos ofrecen soporte comercial. ( Solr , Esfinge )
  • Ambos ofrecen enlaces de la API de cliente para varias plataformas / lenguajes ( Sphinx , Solr )
  • Ambos pueden ser distribuidos para aumentar la velocidad y la capacidad ( Sphinx , Solr )

Aquí hay algunas diferencias:

preguntas relacionadas:

Otros consejos

A menos que necesite para extender la funcionalidad de búsqueda en cualquier forma de propiedad, Sphinx es la mejor opción.

ventajas Sphinx:

  1. Desarrollo y la configuración es más rápido
  2. Mucho mejor (y más rápido) la agregación. Esta fue la función única para nosotros.
  3. No XML. Esto es lo que finalmente descartó Solr para nosotros. Tuvimos que volver más grandes conjuntos de resultados (piense en cientos de resultados) y luego agregar a nosotros mismos ya la agregación de Solr faltaba. La cantidad de tiempo para serializar hacia y desde XML de rendimiento absolutamente muerto. Para obtener resultados conjuntos pequeños, sin embargo, que estaba perfectamente bien.
  4. Mejor documentación que he visto en una aplicación de código abierto

ventajas Solr:

  1. Puede ser extendido.
  2. ¿Puede golpear directamente desde una aplicación web, es decir, puede hacer que las búsquedas de autocompletar como golpean el servidor Solr directamente a través de AJAX.

Nota: Hay muchos usuarios con la misma pregunta en mente

.

Así que, para responder a la cuestión:

¿Qué y por qué?

  • Uso Solr si la intención de utilizarlo en su web-app (ejemplo in situ motor de búsqueda). Definitivamente va a llegar a ser grande, gracias a su API. No cabe duda de que va a necesitar energía para una aplicación Web.

  • Uso Esfinge si desea buscar a través de toneladas de documentos / archivos muy rápido. Que los índices muy rápido también. Yo recomendaría no usarlo en una aplicación que implica JSON o XML análisis para obtener los resultados de búsqueda. Utilizarlo para búsquedas directas dB. Funciona muy bien en MySQL.

Alternativas

A pesar de que estos son los gigantes, hay muchos más. Además, no son los que utilizan estos para alimentar sus marcos personalizados. Por lo tanto, yo diría que realmente no se ha perdido ninguna. Aunque hay una elasticsearch que tiene una buena base de usuarios.

He estado usando la esfinge por casi un año, y ha sido increíble. Puedo índice de 1,5 millones de documentos en alrededor de un minuto en mi MacBook, y aún más rápido en el servidor. También estoy usando Sphinx para limitar las búsquedas a lugares dentro de las latitudes y longitudes específicas, y es muy rápido. Además, ¿cómo se clasifican los resultados es muy modificables. Fácil de instalar y de configuración, si se lee un tutorial o dos. Casi 1.0 estado, pero sus candidatos release han sido sólida como una roca.

Lucene / Solr parece ser más equipado y con largos años en los negocios y una comunidad de usuarios mucho más fuerte. en mi humilde opinión, si usted puede conseguir más allá de los problemas de instalación inicial como algunos parece que se han enfrentado (no nosotros), entonces yo diría Lucene / Solr es la mejor opción.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top