2 Stimmen

Der beste Weg, um eine Suchfunktion zu erstellen ASP.NET und SQL Server

Ich habe eine SQL-Datenbank mit mehreren Tabellen und arbeite an der Erstellung einer Suchfunktion. Gibt es außer der Möglichkeit, mehrere Abfragen für die verschiedenen Tabellen zu erstellen, eine andere Möglichkeit, die Suchfunktion zu nutzen?


Ich sollte vielleicht noch hinzufügen, dass ein Großteil meiner Inhalte datenbankgestützt ist, um die Pflege zu erleichtern. Lucene wird nicht für diese Arbeit, richtig?

3voto

Corey Trager Punkte 21897

Verschiedene Ansätze sind zu berücksichtigen:

1) Mehrere vorgefertigte Abfragen, wie von Ihnen beschrieben.

2) Dynamische Sql, die Sie auf der Grundlage der vom Benutzer eingegebenen Kriterien spontan zusammenstellen.

3) Wenn es sich um Text handelt, auf der Grundlage von SQL Server-Volltextsuche oder Lucene.

In meiner Open-Source-Anwendung BugTracker.NET mache ich beides, 2 und 3 (mit Lucene.NET).

Ich habe hier dokumentiert, wie ich Lucene.NET verwende: http://www.ifdefined.com/blog/post/2009/02/Full-Text-Search-in-ASPNET-using-LuceneNET.aspx

0voto

Rune Grimstad Punkte 34670

Da Sie die Frage mit Asp.net getaggt haben, nehme ich an, dass Sie Ihre Webseiten durchsuchen wollen. In diesem Fall können Sie Indexing Server verwenden, um Freitextsuchen durchzuführen, die die generierte HTML und alle von Ihnen festgelegten Schlüsselwörter durchsuchen.

Wie Corey Trager vorgeschlagen hat, ist die Verwendung von Lucene.NET ebenfalls eine Option. Es hat den guten Ruf, schnell und recht einfach zu sein.

0voto

GateKiller Punkte 71039

Obwohl die anderen Antworten gute Vorschläge enthalten, wie z. B. die Verwendung von Lucene, habe ich die Verwendung einer benutzerdefinierten Caching-Methode bevorzugt.

Für eine Website, an deren Erstellung ich beteiligt war, haben wir alle paar Stunden die durchsuchbaren Daten aus vielen Tabellen in einer einfachen Tabelle mit Spalten wie der folgenden zusammengefasst:

  • URL
  • Artikel/Seitenname
  • Wichtigste Schlüsselwörter
  • Nur Text Inhalt
  • Datum aktualisiert

Ich würde dann meine SQL-Anweisung schreiben, um dieses Feld mit verschiedenen Funktionen zu durchsuchen, um den Rang zu bestimmen.

0voto

Andrew Bullock Punkte 35376

Vielleicht möchten Sie diesen Beitrag, den ich schrieb auf das Schreiben von Volltextabfragen, seine in C #, aber seine easilly portable, oder einfach Stick es in einer Bibliothek und verwenden Sie es als es überprüfen.

Wie man einen SQL-Volltextindex-Suchbegriff in c# erstellt

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