Suchmaschine, die in einen .NET-Stack integriert werden soll

8

Ich bin auf der Suche nach einer sehr robusten Software-Suchmaschine zur Integration in eine .Net-Website.

Die aktuell vorgeschlagene Lösung ist Lucene.NET ein Stack basierend auf Lucene. Ich würde jedoch gerne andere Suchmaschinen bewerten, bevor ich darüber nachdenke.

Wir benötigen folgende Funktionen:

  • Möglichkeit, beliebige Seiten über HTTP zu crawlen
  • Fähigkeit, Sitemaps zu analysieren
  • Fähigkeit, Listen von URIs zu erhalten, die über eine Datenbanksuche analysiert werden
  • Möglichkeit, die Suche auf eine bestimmte Sprache / ein bestimmtes Gebietsschema zu beschränken
  • Möglichkeit, die Suche auf eine Teilmenge der Seiten zu beschränken (z. B. über eine Regex auf der URI)
  • Geschwindigkeit und Skalierbarkeit (dies ist für eine öffentliche Website mit einer Menge Verkehr)
  • Muss .NET-API-Unterstützung oder eine sehr einfache http-basierte API haben, die in eine .NET-API
  • eingebunden werden kann
  • Sprachabhängige Volltextunterstützung

Andere Dinge, die großartig wären, aber keine Deal-Breaker, wenn sie nicht unterstützt werden:

  • Berichterstattung
  • Aliasing und Verzerrung der Ergebnisse
  • HTTP-basierte Verwaltungsseiten
  • SQL Server-Unterstützung

Welche anderen Software-Suchmaschinen haben für Sie gearbeitet? Gibt es irgendwelche, die Sie empfehlen oder die wir vermeiden sollten?

    
Sklivvz 29.01.2010, 16:08
quelle

8 Antworten

3

Sehen Sie sich den Search Server Express von Microsoft an, obwohl die Seite ziemlich durcheinander ist Versuchen Sie im Moment diesen Link .

Es gibt andere Enterprise-Engines wie vivisimo velocity (sehr erweiterbar), Autonomie usw. Lucene und Solr sind begrenzt, schwer zu verwenden und konfigurieren, aber das ist, was Sie bekommen, wenn Sie etwas frei haben wollen.

    
shawnwall 29.01.2010 16:24
quelle
3

Lucene.Net ist eine Informationsabrufbibliothek, keine Suchmaschine. Insbesondere wird Folgendes nicht tun:

  • Crawlen von Webseiten oder Parsen von Sitemaps
  • Berichterstattung
  • HTTP-basierte Verwaltungsseiten
  • SQL Server-Unterstützung (Lucene.Net verwendet ein eigenes, aber sehr effektives Dateiformat und verwendet keinen SQL Server)

Obwohl ich ein starker Unterstützer oder SQL bin und es als Volltext-Suchkomponente einer Suchmaschine empfehlen würde, benötigen Sie auch eine Crawler / HTML-Parser-Komponente, um eine voll funktionsfähige Suchmaschine und Sie zu erstellen müssen Ihre Lucene.Net-Indizes sorgfältig entwerfen, um die Leistung der gewünschten Abfragen zu maximieren (Suche nach Sprache / Gebietsschema)

Sehen Sie sich das Projekt Solr an, bei dem es sich um eine vollwertige Suchmaschine handelt, die Lucene verwendet - dies könnte Ihren Anforderungen besser entsprechen .

    
Justin 29.01.2010 16:16
quelle
1

Ich würde empfehlen, Solr auszuprobieren. Es ist Java-basiert, erfüllt aber die HTTP-basierte API-Phase Ihrer Anforderungen und ist so konzipiert, dass es auf einer separaten Box / einem Cluster von Ihrer primären App ausgeführt wird (Sie benötigen also nicht notwendigerweise Java UND .NET auf derselben Hardware) Es hat viel Schwung. Es ist eine Weile her, seit ich damit gearbeitet habe, aber ich kann mich nicht erinnern, dass es einen eigenen Crawler hat. Wenn das immer noch so ist, sollte es einfach sein, einen eigenständigen Crawler und die oben erwähnte API zu verwenden, damit es funktioniert.

    
Hank Gay 29.01.2010 16:13
quelle
1

Wie andere gesagt haben, gehen Sie definitiv mit dem Original Lucene mit Solr. Die Integration mit .Net ist sehr einfach. Ich habe gerade erst kürzlich darüber gebloggt: Ссылка

    
BFree 29.01.2010 16:15
quelle
1

Coveo ist die Suchmaschine, die wir derzeit einsetzen, um Google Mini , das für eine Reihe von Jahren verwendet wurde. Ich deute nur darauf hin, dass es etwas zu erkunden gibt, da ich nicht genug benutzt habe, um zu wissen, wie gut sie sind. Ich kenne nur Kopfschmerzen bei jedem, viele viele Kopfschmerzen.

    
JB King 29.01.2010 16:47
quelle
1

Anstatt Lucene.Net direkt zu verwenden, haben Sie überlegt, etwas zu verwenden, das es umschließt und mehr Funktionen bietet, als Sie möchten?

Solr ist ein Apache-Produkt, das dies tut, und es gibt auch einen . Net-Client Port von dafür. Ich habe es nie in der Produktion verwendet, aber es sieht nach der Art von Dingen aus, nach denen du suchst.

Entlang einer ähnlichen Idee ist Nutch (geschrieben von dem Typ, der ursprünglich Lucene geschrieben hat), obwohl mir kein .Net bekannt ist Version davon. Nutch hat eine Spider-Komponente zum Crawlen von Websites.

    
adrianbanks 29.01.2010 16:14
quelle
0

Lucene ist die einzige, die ich kenne, aber es würde erfordern, dass Sie ein gutes Stück von dem schreiben, was Sie selbst wollten.

    
Burt 29.01.2010 16:14
quelle
0

Sie können sich auch den OpenSearchServer

ansehen

Läuft wie ein Zauber auf Windows. Sie können den SOAP-Web-Service für die Integration verwenden.

Es gibt auch eine C # -Skelettbibliothek, die mit der XML / REST-API arbeitet.

Haftungsausschluss: Ich bin der CEO von OpenSearchServer

    
Emmanuel Keller 17.10.2012 12:27
quelle