Die Verwendung von ASP zur Implementierung der Funktionen von Suchmaschinen ist sehr bequem, aber wie können intelligente Suche implementiert werden? Nach dem Lesen dieses Artikels werden Sie feststellen, dass es tatsächlich sehr einfach ist, diese Funktion zu implementieren. Folgen wir dem Herausgeber des falschen neuen Technologiekanals, um mehr zu erfahren!
Schritte zur Implementierung der ASP intelligenten Suche
Der erste Schritt besteht
Die Datenbank wird als Beispiel verwendet) und erstellen Sie eine Tabelle T_Sample darin. Die Tabelle T_Sample enthält die folgenden Felder:
ID Automatische Nummerierung
U_name text
U_info Notizen
Im zweiten Schritt beginnen wir mit der Suche nach der Suche nach der Suche. Diese Seite enthält ein Formular
(FRM_SEARCH) enthält das Formular ein Textfeld und eine Schaltfläche Senden. Und setzen Sie die Methode der Form ein
Legen Sie die Natur auf "Get" fest und das Aktionsattribut wird auf "such.asp" gesetzt, was bedeutet, sie an die Webseite selbst einzureichen. Der Code ist wie folgt
:
Bitte geben Sie Schlüsselwörter ein:
Als nächstes geben wir den wichtigsten Teil der Implementierung intelligenter Suche ein.
Stellen Sie zunächst eine Datenbankverbindung her. Fügen Sie den folgenden Code zum Beginn der Suche hinzu.
<%
Dim Strovider, CNN
strProvider = "Provider = microsoft.jet.oledb.4.0; Data Source ="
StrProvider = strrovider & server.mappath ("/") &
"/data/db_sample.mdb" 'Angenommen, die Datenbank ist im Datenverzeichnis im Stammverzeichnis der Startseite gespeichert
Setzen Sie cnn = server.createObject ("adodb.Connection").
Cnn.open strProvider 'offene Datenbankverbindung
%>
Beurteilen Sie als nächstes die von der ASP -Seite empfangenen Daten und suchen Sie in der Datenbank.
<%
Dim s_key, rst, strsql
S_key = trimm (request ("key") ')' den Wert des Suchschlüsselworts abrufen
Wenn s_key <> "" dann
Setzen Sie rST = server.createObject ("adodb.recordset")
Strsql = autokey (s_key) 'Die benutzerdefinierte Funktion autokey () wird hier verwendet, die Funktion
Nummer ist der Kern der intelligenten Suche
Rst.open strsql, cnn, 3,2 'Holen Sie sich den durchsuchten Datensatz
Wenn rst.bof und rst.eof dann dann
%>
Es wurden keine Ergebnisse gefunden! ! !
<%
Anders
%>
Der Suchname ist "< %= s_key %
Der Artikel von> "wurde insgesamt < %= rst.RecordCount %gefunden
> Artikel:
<%
Zwar nicht rst.eof 'Reisen Sie den gesamten Datensatz ein, um die durchsuchten Buchstaben anzuzeigen
und Links einrichten
%>
href = "info.asp? id = <%= rst (" id ")%>" target = "_ leer"> <%= rst ("u_name")
%>
<%= Links (RST
("U_info"), 150) %>>
<%
Rst.movenext
Wend
RST.CLOSE
Setzen Sie RST = nichts
Ende wenn
Ende wenn
%>
Im obigen Code gibt es eine benutzerdefinierte Funktion Autokey, die der Kernel ist, der intelligente Suche implementiert
Wo das Herz ist. Der Code ist wie folgt:
<%
Funktion Autokey (Strkey)
Const lngsubkey = 2
Dim Lnglenkey, Strnew1, Strnew2, I, Strsubkey
„Überprüfen Sie die Rechtmäßigkeit der Zeichenfolge, wenn sie nicht legal ist, gehen Sie zur Fehlerseite. Sie können die Fehlerseite nach Bedarf durchführen
Einstellungen erstellen.
If Instr (Strkey, "=") <> 0 oder instr (strkey, "` ") <> 0 oder Instrument
(Strkey, "'") <> 0 oder Instry
Instr (strkey, "'") <> 0 oder instr (strkey, chr (34)) <> 0 oder instr (strkey, "/")
<> 0 oder instration (strkey, ",") <> 0 oder instr (strkey, "<") <> 0 oder Instrument
(Strkey, ">") <> 0 dann
Reaktion.Redirect "error.htm"
Ende wenn
lnglenkey = len (Strkey)
Wählen Sie Fall Lnglenkey
Fall 0 'Wenn es sich um eine leere Zeichenfolge handelt, gehen Sie zur Fehlerseite
Reaktion.Redirect "error.htm"
Fall 1 'Wenn die Länge 1 ist, wird kein Wert festgelegt
Strnew1 = ""
Strnew2 = ""
Fall sonst 'Wenn die Länge größer als 1 ist, starten Sie vom ersten Zeichen der Zeichenfolge und nehmen Sie die Länge als
2's Substring als Abfragebedingungen
Für i = 1 bis lnglenkey- (lngsubkey-1)
Strsubkey = Mid (Strkey, i, lngsubkey)
STRNEW1 = STRNEW1 & "oder U_NAME wie '%' & Strsubkey
& "%'" "
Strnew2 = Strnew2 & "oder u_info wie '%' & Strsubkey
& "%'" "
Nächste
Ende auswählen
'Holen Sie sich die vollständige SQL -Anweisung
Autokey = "Select * aus t_Sample, wobei u_name wie '%' & strKey
& "%'oder u_info mögen'%" & strKe & "%'" & Strnew1 & Strnew2
Endfunktion
%>
Um eine intelligente Suche zu erreichen, besteht der Kern darin, Suchschlüsselwörter automatisch zu gruppieren. Hier machen wir
Die Methode zum Schleifen in Unterstrings mit Länge 2 wird verwendet. Warum setzen Sie die Substringlänge nicht auf 1, 3, 4 oder so?
Dies liegt daran
Wenn größer als 2, gehen einige Sätze verloren. Sie können const lngsubkey = 2 in andere Zahlen ändern und es versuchen
Es ist klar, welcher besser oder schlechter ist.
Vergessen Sie nicht, die Datenverbindung auszuschalten, um die Ressourcen freizugeben.
<%
Cnn.close
Setzen Sie CNN = nichts
%>
Das obige ist, wie man intelligente Suche implementiert. Weitere technische Kenntnisse achten Sie weiterhin auf den falschen neuen Technologiekanal!