Beim Erstellen einer Website bat mich der Chef, eine Suchfunktion wie Baidu zu implementieren. In der Vergangenheit implementierte ASP eine Fuzzy-Suche und passende Abfragen. auf keinen Fall. Beim Durchsuchen des Internets habe ich herausgefunden, dass es im Internet mehrere Methoden gibt, die darin bestehen, einen Thesaurus zu erstellen, die andere darin, Wortsegmentierungskomponenten zu verwenden, und die dritte ist die automatische Wortsegmentierungstechnologie, aber das ist es Es handelt sich nicht um eine intelligente Wortsegmentierung, sondern nur darum, jedes zweite Wort abzugleichen. Das Beste ist, ein Vokabular aufzubauen und es basierend auf Benutzereingaben zu erweitern. Bei kleinen und mittelgroßen Websites ist dies jedoch möglicherweise nicht erforderlich.
Dies ist die dritte Art der Wortsegmentierungssuche, über die ich spreche. Der Code lautet wie folgt: Ich werde nicht näher darauf eingehen, wie man ihn verwendet.
<%
Funktion AutoKey(strKey)
CONST lngSubKey=2
Dim lngLenKey, strNew1, strNew2, i, strSubKey
'Überprüfen Sie die Rechtmäßigkeit der Zeichenfolge. Wenn nicht, gehen Sie zur Fehlerseite. Sie können die Fehlerseite entsprechend Ihren Anforderungen einstellen.
if InStr(strKey,"=")<<0 oder InStr(strKey,"`")<0 oder InStr(strKey,"")<0 oder InStr(strKey," ")<<0 oder InStr(strKey ," ")<<0 oder InStr(strKey,"")<0 oder InStr(strKey,chr(34))<<0 oder InStr(strKey,"")<0 oder InStr(strKey,", ")<>0 oder InStr(strKey,"<")<>0 oder InStr(strKey,">")<>0 dann
Response.Redirect „error.htm“
Ende wenn
lngLenKey=Len(strKey)
Wählen Sie Case lngLenKey aus
Fall 0 Wenn es sich um eine leere Zeichenfolge handelt, gehen Sie zur Fehlerseite
Response.Redirect „error.htm“
Fall 1 Wenn die Länge 1 ist, wird kein Wert gesetzt
strNew1=""
strNew2=""
'Fall Sonst: Wenn die Länge größer als 1 ist, beginnen Sie mit dem ersten Zeichen der Zeichenfolge und durchlaufen Sie die Teilzeichenfolge mit der Länge 2 als Abfragebedingung
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
Endauswahl
'Holen Sie sich die vollständige SQL-Anweisung
AutoKey="Select * from T_Sample where U_Name like %" & strKey & "% or U_Info like %" & strKey & "%" & strNew1 & strNew2
Funktion beenden
%>