Wie man eine such-engine in C#
Ich versuche, eine Webanwendung zu erstellen, in ASP.NET MVC und müssen bauen eine ziemlich komplexe such-Funktion. Wenn ein Benutzer einen Suchbegriff ich suchen wollen, die eine Vielzahl von Datenquellen, die beinhalten, - Dokumente, - Tabellen in der Datenbank, Webseite urls und einige APIs wie facebook. Irgendwelche Tipps, tutorials und Tipps würde sehr geschätzt werden.
- wo sind Sie hier? Sie sind stucked mit dem index der Lagerung oder bei der Suche oder bei der query-Analyse?Suchmaschine ist ein ganz großes Thema
- Welcher Teil von Ihnen Schwierigkeiten? Wenn Sie Probleme beim Aufbau einer komplexen Suchmaschine, ich würde anfangen mit einem einfachen zuerst. Etwas aufbauen, das sucht nur Dokumente, denn Sie müssen irgendwann, dass ein Teil. Fahren Sie dann auf der Datenbank sucht.
- Zeigen Sie google an. Voila, instant-Suche.
- verwenden Sie 3rd-party sind, können Sie tatsächlich kaufen Sie einen server von Google oder installieren Sie Lucen (oder ähnliches) auf einer Maschine von Ihnen und verwenden Sie, dass als Suchmaschine. Ich habe dies getan mit Google, ziemlich einfach, ziemlich effizient, ziemlich teuer 😉
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre Frage suggeriert, dass du bist wahrscheinlich nicht der Planung bis zur Umsetzung das gesamte feature von Grund auf, so sind hier einige links, die Sie nützlich finden können.
Eine (die einfachste) Möglichkeit wäre die Verwendung einer Drittanbieter-Suchmaschine (z.B. Die Benutzerdefinierte Suche Von Google, aber Bing hat wahrscheinlich einen ähnlichen API). Dies ermöglicht Ihnen die Suche (nur) die eigene Seite mit Hilfe von Google und zeigt die Ergebnisse in einer angepassten Art und Weise. Die limiation ist, dass es durchsucht nur die Daten angezeigt, auf einige (verlinkten) Seiten.
Einen anspruchsvollen Ansatz ist die Nutzung von einigen .NET-Bibliothek, die Indizierung für Sie (auf der Grundlage der Daten, die Sie geben). Eine populäre Bibliothek zum Beispiel Lucene.Net. In diesem Fall geben Sie die Daten, die Sie suchen möchten ausdrücklich (relevante Inhalte von web-Seiten, Datenbank-Inhalte, etc..), so haben Sie mehr Kontrolle über das, was durchsucht wird (aber es ist ein bisschen mehr Arbeit).
Aufbau der eigentlichen Suche, index-Strukturen und-algorithmen ist keine einfache feat. Das ist, warum Menschen nutzen Lucene, Sphinx, Solr, etc.. Mit google.com wie empfohlen in den Kommentaren, geben Sie keine Kontrolle und schlechte matching im Vergleich zu dem, was bekommst du von einem von diesen kostenlosen Suchmaschinen, wenn Sie richtig konfiguriert und verwendet werden.
Empfehle ich einen Blick auf Solr, es gibt Ihnen die macht der Lucene-aber es ist viel einfacher zu bedienen, plus es fügt einige Komfort-features wie caching, Splitter, facettieren, etc.
SolrNet ist ein Solr-client für .Net, es ist ein sample ASP.NET MVC-app, die Sie verwenden können, um zu sehen, wie es funktioniert und als Basis für Ihr Projekt.
Disclaimer: ich bin der Autor von SolrNet.
Schrieb ich eine benutzerdefinierte Suchmaschine für mein MVC 4 Seiten. Es analysiert die Verzeichnisse Ansehen und liest alle .cshtml-Dateien, passend zu den gelieferten Begriffe mit einem regulären Ausdruck. Hier ist der basic-code: