4 Stimmen

ASP.NET C# Suche in einer SQL Server-Datenbanktabelle

Ich baue ein Portal auf, das keine Blogging-Engine ist, aber einem solchen ziemlich ähnlich ist. In SQL Server habe ich eine Datenbank mit einer Tabelle, die die Grundlage für die "Posts" ist. Diese Tabelle "Posts" enthält die folgenden Spalten:

  • ID
  • Autor(en)
  • Tags
  • Titel
  • Markdown-Beitragsinhalt

Dies ist das erste Mal, dass ich ein solches Portal aufbaue, und ich würde gerne eine Art von ASP.NET-Suche über diese Zeilen, vorzugsweise unter Verwendung aller Eigenschaften (Spalten), mit Ausnahme der ID. Langfristig ziehe ich auch die Möglichkeit in Betracht, eine Suche nach diesen Beiträgen und Kommentaren zu implementieren, die in einer anderen Tabelle gespeichert werden würde.

Gibt es im Internet Open-Source-Implementierungen oder Beispielcode für diese Suche? ? Wenn nicht, wie kann ich dann anfangen? Könnten Sie mich auf einige Tutorials mit Beispielcode hinweisen, wie man dies mit ASP.NET und C# erreichen kann? Hat Google (oder ein anderes Unternehmen) irgendetwas in dieser Richtung entwickelt?

Ich hoffe, meine Frage ist nicht zu allgemein oder vage. Vielen Dank im Voraus!

9voto

womp Punkte 113535

Verwenden Sie Sql Server 2008? Wenn ja, können Sie die Volltext-Suchfunktionen direkt in das System eingebaut. Dann wäre es so einfach wie die Übergabe der (bereinigten) Benutzereingabe in eine Sql-Abfrage.

Hier ist zum Beispiel eine Abfrage, die die Felder Autor, Titel und PostContent nach dem vom Benutzer eingegebenen Text durchsuchen würde.

SELECT Author, Title FROM Posts
WHERE CONTAINS((Author, Title, PostContent), @userInput);

SQL Server 2008 unterstützt auch verschiedene Suchmethoden wie z. B. einfache Token-, gewichtete Wortwert-, Synonym-, Proximity- und Präfix-Suche... das ist ziemlich genial.

2voto

Guillermo Gomez Punkte 1695

Haben Sie schon einmal darüber nachgedacht, eine Suche mit Hilfe der Volltextsuche zu implementieren? Es scheint ein großartiges Szenario dafür zu sein. Dieser Link könnte nützliche Informationen über Architektur und Entwicklung der Volltextsuche liefern. http://msdn.microsoft.com/en-us/library/ms142571.aspx

1voto

GrayWizardx Punkte 17771

Wenn diese öffentlich zugänglich sind, können Sie sie jederzeit von Google indexieren lassen. Google hat eine Gerät die Sie auch zu diesem Zweck erwerben können.

Wenn Sie nicht selbst rollen wollen, können Sie sich das ansehen:

  1. Sharepoint (regulär [kommt mit Win 2003+] oder Portalserver)
  2. SOLR (Apache Lucene Projekt)

Wenn Sie Ihre eigenen Suchindizes erstellen möchten, schlage ich vor, die SQL Server Analysis Services zu nutzen, um die Suchindizes regelmäßig für Sie zu erstellen.

0voto

Mark Ewer Punkte 1785

Ich stimme mit Womp überein - ein Volltextindex ist der richtige Weg. Sie könnten auch nachsehen NLuken wenn Sie mehr als nur die Datenbanktabelle indizieren müssen.

0voto

Hiyasat Punkte 7942

Ich denke, Sie sollten versuchen, Lucene zu verwenden, mit dem Sie alle Ihre Daten indizieren und eine wirklich gute Suchmaschine aufbauen können. Ich kann mehr Informationen darüber geben, wenn Sie möchten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X