2010-12-30 22 views
6

Estoy pensando en utilizar Lucene en mi proyecto para realizar búsquedas muy rápidas. Sé que Lucene crea sus propios archivos donde guarda todos los datos/índices.¿Cuáles son los inconvenientes de usar Lucene?

Me pregunto cuáles son los inconvenientes de usar Lucene? ¿Hay alguno?

¿Tiene que hacer algo con la base de datos de archivos o funciona muy bien sin ayuda externa?

P.S. Sé que también existe Lucene .NET y apuesto a que las mismas reglas se aplican allí.

Respuesta

9

Lucene es genial. Muy flexible, sorprendentemente rápido y una sólida API. La lista de correo es extremadamente útil.

Los archivos necesitan un poco de mantenimiento, pero se puede hacer con las herramientas provistas. De primordial importancia es optimizar el índice en ocasiones, pero esto solo es necesario si actualiza el índice regularmente.

Sugeriría buscar en Solr también. Es esencialmente una aplicación web y herramientas que se encuentran encima de Lucene. Hace que sea un poco más fácil crear nuevos índices, mantenerlos optimizados, así como proporcionar la sincronización maestro/esclavo para un clúster de búsqueda escalable. Esto, por supuesto, depende de tus necesidades reales.

Para un ejemplo personal, solía mantener un índice de búsqueda para una gran empresa de juegos conocida. El índice tenía cientos de miles de entradas en múltiples idiomas (en todo el mundo) y locales. Realizó un millón de búsquedas diarias en el clúster sin utilizar casi ninguna CPU y una cantidad razonable de memoria. Había probado la carga a alrededor de 300 millones de búsquedas por día, en el hardware que teníamos y escalaba linealmente simplemente agregando más cuadros al clúster. Solr y Lucene fueron las principales herramientas para esto.

Si yo tuviera para dar un aspecto negativo, sería una curva de aprendizaje. Hay un poco de comprensión, y si quiere una solución verdaderamente optimizada, necesita conocerla bien. Sin embargo, esto sucederá con cualquier herramienta de búsqueda que use, si lo hace usted mismo. La documentación, los wikis y la lista de correo brindan mucho apoyo para esta aceleración.

2

Tengo experiencia limitada con Lucene, hasta ahora ha sido genial. Las desventajas que puedo ver son principalmente desde un punto de vista comercial:

  1. tengo que hacer de forma activa en el caso de utilizando Lucene a mi jefe, por defecto usaríamos SQL Server. Para hacer el cambio de tendré que probar sin una duda de que Lucene tiene un mejor rendimiento (y no solo similar) para el caso que tenemos. Supongo que este va a "Nadie fue despedido por comprando el síndrome de equipo IBM".
  2. Desarrollo en curso/correcciones de errores para Lucene.Net en particular son cuestionables en este punto , de nuevo una venta más difícil sin esto. Espero que la comunidad pueda reunirse .
2

Lucene hace un gran trabajo para many people and companies. Sin embargo, su millaje puede variar. Un posible problema es el modelo de puntuación de Lucene: utiliza una combinación de TF/IDF y puntuación booleana, mientras que otras herramientas de IR utilizan el BM25 probabilístico, que es más sólido. Sin embargo, puede trabajar con Lucene durante años y los resultados de búsqueda serían lo suficientemente buenos. Además, escalar a muchos millones de documentos no es fácil.

Se reduce a su caso de uso específico. Lo mejor es comenzar una prueba usando Solr y ver si parece ajustarse a sus necesidades.

2

Lucene tiene un problema de escalabilidad. Su rendimiento se degrada cuando el índice se hace cada vez más grande.

+1

Eso no es un problema específico de lucene, lo mismo es cierto para cualquier sistema de indexación. – bdargan

Cuestiones relacionadas