asp.net solr lucene.net

asp.net - apache solr



Motor de búsqueda-Lucene o Solr (6)

Necesitamos integrar un motor de búsqueda en nuestro software de gestión del catálogo de productos. Se espera que el catálogo tenga más de 4-5 mn. registros con datos relacionales repartidos en varias tablas. Nuestra plataforma de desarrollo es Asp.Net 3.5 y hemos realizado un trabajo pre-liminar sobre Lucene, y descubrimos que es bueno. Sin embargo, acabamos de conocer Solr y estábamos buscando algunos consejos prácticos para comparar Lucene & Solr desde la implementación, línea de tiempo, mantenimiento regular, rendimiento y perspectiva de las características. Cualquier orientación o consejos sería realmente útil. Gracias.


Estamos exactamente en la misma situación que tú. Lamentablemente, no participé directamente en el proceso de evaluación, pero al final vamos a utilizar Solr integrado con Lucene.

La principal ventaja es la variedad de formatos que describe dcruz. De modo que puede consultar su Solr-Consumer y obtener el resultado de su búsqueda como datos XML que pueden analizarse fácilmente y mostrarse en la página web.


Lucene:

Apache Lucene es una biblioteca de motor de búsqueda de texto de alto rendimiento y con todas las funciones escritas completamente en Java. Es una tecnología adecuada para casi cualquier aplicación que requiera búsqueda de texto completo

Solr:

Solr es un servidor de búsqueda empresarial de código abierto basado en la biblioteca de búsqueda Lucene Java, con API XML / HTTP y JSON, resaltado de visitas, búsqueda con facetas, almacenamiento en caché, replicación, una interfaz de administración web y ...

Esencialmente, Lucene está integrado en Solr y es puramente una biblioteca de búsqueda de texto completo, con el propósito de integrarse en los proyectos, dándoles capacidades de búsqueda de texto completo. Solr tiene muchas más características y capacidades de administración, lo que permite buscar datos estructurados sin necesidad de escribir ningún código personalizado, cargar datos de archivos CSV, análisis tolerante de las entradas de los usuarios, búsquedas facetadas, resaltar texto apareado en los resultados y recuperar resultados de búsqueda en una variedad de formatos (XML, JSON, ...). Consulte la página de características de Solr y vea si alguna característica es relevante para su proyecto.


Como dcruz dice, Solr usa Lucene de todos modos, así que no es una comparación válida.

Lucene es un conjunto de herramientas para crear aplicaciones de búsqueda, Solr es una aplicación de búsqueda creada con Lucene.

IMO, estarías loco si no usas Solr, ya que te proporciona mucha "fontanería" que tendrías que escribir de otra forma, como un Manejador de importación de datos configurable para extraer datos de tus repositorios RDBMS o XML.

Además, le ofrece una interfaz de administración web y otras características.


Tengo que estar de acuerdo con Andrew Clegg. Creo que cuando muchos desarrolladores de Java miran Lucene vs Solr, Lucene parece más amigable porque es solo una biblioteca (POJJ: Plain Old Java Jar!), Como cualquier otra biblioteca y parece sencillo de integrar, frente a la complejidad de de pie Solr arriba como un proceso separado que se comunica a través de HTTP complejo.

Sin embargo, creo que para casi todos los casos de uso de búsqueda, Solr es el enfoque correcto. Porque la mayor parte de la complejidad en la Búsqueda no es la integración inicial directa, sino las áreas borrosas de las búsquedas de ajuste, escala para satisfacer la demanda y mantener los índices que cruzan del mundo centrado en el desarrollador al mundo de los sistemas. Y Solr maneja todas esas necesidades muy bien.


Déjame cambiar un poco tu enfoque: ¿estás preparado para los cambios en la arquitectura de tu producto? Tanto Lucene como Solr están implementados en Java. Por lo tanto, terminará ejecutando otro contenedor web para alojarlo (y, por lo tanto, perderá la pureza de la plataforma, por así decirlo). Mientras Lucene fue portado a .NET ( proyecto Lucene.NET ), Solr no fue tan lejos como yo sé. Si usa SQL Server (lo cual es probable, considerando su plataforma), podría considerar la búsqueda de texto completo de SQL Server: tiene casi las mismas características (no tan ricas en funciones como Lucene / Solr, pero de todos modos) y generalmente (en la mayoría de los casos) es mucho más fácil de incorporar a la aplicación existente. Además de eso, usted se beneficia de un mantenimiento simplificado (viene junto con su base de datos) y también se mantiene dentro de una plataforma única.


Una cosa a considerar es cuán difícil será configurar su aplicación cuando mezcle estos dos entornos (Java / .NET). Si usa las bibliotecas de Lucene.NET, puede limitar sus instalaciones de dependencia externa requeridas, lo que agiliza la implementación.

Otra cosa a considerar es ¿ necesita los extras que Solr está ofreciendo? Una interfaz de administrador web (otra) probablemente sea excelente, pero extiende su envolvente de riesgo. Establecer Java y otro servicio significa más administración de parches. Si se queda con .NET solo su estrategia de parche puede ser el modelo estándar de actualización de Windows.

Por supuesto, implementar su implementación usando Lucene.NET tendrá costos de desarrollo y mantenimiento propios, pero en mi experiencia ha sido sencillo y fácil de usar.