Pregunta

Contamos con una aplicación web que permite a los usuarios cargar documentos, crear sus propios documentos, etc.Los archivos cargados se almacenan en Amazon S3, la información creada se almacena en una base de datos MySQL.Lo que estoy buscando es algún tipo de motor de búsqueda, donde le proporcione todos nuestros documentos de texto, cada uno con una identificación única, y cree un índice o lo que sea.Más tarde, puedo realizarle consultas de búsqueda y extraerá los documentos que mejor coincidan (a través de su ID), junto con fragmentos de texto coincidente.

Básicamente queremos permitir a nuestros usuarios buscar en su repositorio de material subido, junto con cualquier cosa que otros usuarios hayan marcado como público.La solución debería ejecutarse en un servidor Linux estándar e idealmente sería de código abierto, pero también consideraré soluciones pagas si no tienen un precio escandaloso.

Hasta ahora, he encontrado tres candidatos potenciales:

  1. Búsqueda de texto completo MySQL - algunos informes que he leído dicen que es muy lento
  2. apache lucene - desafortunadamente escrito en Java, pero lo usaré si es necesario.supuestamente rapido
  3. Esfinge - no parece ser tan popular, idealmente cualquier solución que encuentre tendrá mucho apoyo de la comunidad.

Avíseme si hay otras buenas opciones que haya pasado por alto o si tiene experiencia con alguna de las anteriores.

¿Fue útil?

Solución

Echa un vistazo a solr.Está basado en Lucene, por lo que es muy rápido y realmente fácil de usar desde cualquier plataforma.

Otros consejos

Esfinge Puede valer la pena considerarlo, ya que funciona bien con varios RDMS comunes (en particular MySQL)

También hay Xapian que es rápido y bastante personalizable.

Tiene soporte para indexadores personalizados que permiten indexar datos que no están almacenados en una base de datos, lo que podría ser útil para sus documentos almacenados en S3.

Me imagino que Google Tendrás una solución que se adapta a tus necesidades.Empieza aqui: Google empresarial

Hay un puerto Ruby de Lucene llamado "Hurón".Además de la API de Ruby, puede acceder a la implementación de C subyacente llamada "cFerret".

Lucene es muy buena.Y aunque fue escrito originalmente en java existe una implementación en php http://framework.zend.com/manual/en/zend.search.lucene.html

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