/ / Motor de búsqueda para integrar en una pila .NET: c #, búsqueda, búsqueda de texto completo, motor de búsqueda

Motor de búsqueda para integrar en una pila .NET: c #, búsqueda, búsqueda de texto completo, motor de búsqueda

Estoy buscando un motor de búsqueda de software muy robusto para integrar en un sitio web .Net.

La solución actual propuesta es Lucene.NET Una pila basada en Lucene. Sin embargo, me gustaría evaluar otros motores de búsqueda antes de decidirme.

El conjunto de características que necesitamos es el siguiente:

  • Capacidad para rastrear páginas arbitrarias a través de HTTP
  • Capacidad para analizar mapas de sitio
  • Capacidad para obtener listas de URI para analizar a través de una búsqueda en la base de datos
  • Capacidad para restringir la búsqueda a un idioma / localidad en particular
  • Capacidad para restringir la búsqueda a un subconjunto de las páginas (por ejemplo, a través de una expresión regular en el URI)
  • Velocidad y escalabilidad (esto es para un sitio web público con mucho tráfico)
  • Debe tener compatibilidad con API .NET o una API súper fácil basada en http que pueda incluirse en una API .NET
  • Soporte de texto completo dependiente del idioma

Otras cosas que serían geniales, pero que no rompen el trato si no son compatibles:

  • Reportando
  • Aliasing y sesgo de resultados
  • Páginas de administración basadas en HTTP
  • Soporte de SQL Server

¿Qué otros motores de búsqueda de software han funcionado para usted? ¿Hay alguna que recomiende o que debamos evitar?

Respuestas

3 para la respuesta № 1

Echa un vistazo a Microsoft "s Search Server Express, aunque la página se ve arruinada en este momento, así que intente esto enlazar.

Hay otros motores empresariales por ahí, como velocidad vivisimo (muy extensible), autonomía, etc. Lucene y Solr son limitados, difíciles de usar y configurar, pero eso es lo que obtienes cuando quieres algo gratis.


3 para la respuesta № 2

Lucene.Net es una biblioteca de recuperación de información, no un motor de búsqueda. En particular no ganó hacer cualquiera de:

  • Rastrear páginas web o analizar mapas de sitio
  • Reportando
  • Páginas de administración basadas en HTTP
  • Compatibilidad con SQL Server (Lucene.Net usa su propio formato de archivo simple pero altamente efectivo, y no usa SQL Server)

Aunque soy un gran defensor o SQL y lo haríalo recomiendo como el componente de búsqueda de texto completo de un motor de búsqueda, también necesitará un componente de rastreador / analizador html para crear un motor de búsqueda funcional completo, y tendrá que diseñar cuidadosamente sus índices Lucene.Net para maximizar El rendimiento de las consultas que desea (búsqueda por idioma / configuración regional)

Intenta mirar el Solr proyecto que es un motor de búsqueda completo con Lucene; esto podría ser más adecuado para sus necesidades.


1 para la respuesta № 3

Recomiendo echar un vistazo Solr. Está basado en Java, pero cumple con la API basada en HTTPparte de sus requisitos, está diseñado para ejecutarse en un cuadro / clúster separado de su aplicación principal (por lo que no necesariamente necesita Java y .NET en el mismo hardware), y tiene mucho impulso. Ha sido un desde que trabajé con él, pero no recuerdo haberlo provisto de su propio rastreador. Si ese sigue siendo el caso, debería ser sencillo utilizar un rastreador independiente y la API antes mencionada para que funcione.


1 para la respuesta № 4

Como otros han dicho, definitivamente vaya con el Lucene original usando Solr. Integrarlo con .Net es súper simple. De hecho, recientemente escribí un blog sobre esto: http://crazorsharp.blogspot.com/2010/01/full-text-search-using-solr-lucene-and.html


1 para la respuesta № 5

Coveo es el motor de búsqueda que estamos implementando para reemplazar un Google Mini eso fue usado por varios años. Solo estoy señalando esto como algo para explorar, ya que no he usado lo suficiente como para saber qué tan buenos son. Solo sé de dolores de cabeza con cada uno, muchos dolores de cabeza.


1 para la respuesta № 6

En lugar de usar Lucene.Net directamente, ¿ha considerado usar algo que lo envuelva y brinde más funcionalidades similares a las que busca?

Solr es un producto de Apache que hace esto, y también hay un Cliente .Net puerto de para ello. Nunca lo he usado en producción, pero parece el tipo de cosa que buscas.

A lo largo de una idea similar es Nutch (escrito por el tipo que originalmente escribió Lucene), aunque no conozco ninguna versión .Net del mismo. Nutch tiene un componente de araña para rastrear sitios.


1 para la respuesta № 7

También puede echar un vistazo a OpenSearchServer

Se ejecuta como un encanto en Windows. Puede utilizar el servicio web SOAP para realizar la integración.

También hay una biblioteca de esqueleto de C # que funciona con la API XML / REST.

Descargo de responsabilidad: soy el CEO de OpenSearchServer