L'utilisation d'ASP pour implémenter les fonctions des moteurs de recherche est très pratique, mais comment implémenter la recherche intelligente? Après avoir lu cet article, vous constaterez qu'il est en fait très simple d'implémenter cette fonction. Suivons l'éditeur de la mauvaise chaîne de nouvelles technologies pour en savoir plus!
Étapes pour implémenter la recherche intelligente ASP
La première étape consiste à créer une base de données appelée db_sample.mdb (cet article utilise le numéro Access2000
La base de données est utilisée comme exemple) et créent un tableau T_Sample dedans. Le tableau T_Sample comprend les champs suivants:
ID Numérotation automatique
Texte u_name
Notes u_info
Dans la deuxième étape, nous commençons à concevoir la page de recherche Search.asp. Cette page comprend un formulaire
(FRM_SEARCH), le formulaire comprend une zone de texte et un bouton de soumission. Et mettre la méthode du formulaire
Définissez la nature sur "Get" et l'attribut d'action est défini sur "Search.asp", ce qui signifie le soumettre à la page Web lui-même. Le code est le suivant
:
Veuillez saisir les mots clés:
Ensuite, nous entrons dans la partie clé de la mise en œuvre de la recherche intelligente.
Tout d'abord, établissez une connexion à la base de données. Ajoutez le code suivant au début de Search.asp:
<%
Dim Strprovider, CNN
strprovider = "provider = Microsoft.Jet.oledb.4.0; Source de données ="
strProvider = strProvider & server.mappath ("/") &
"/data/db_sample.mdb" "Supposons que la base de données soit stockée dans le répertoire de données dans le répertoire racine de la page d'accueil
Définir cnn = server.createObject ("adodb.connection")
CNN.Open Strprovider 'Open Database Connection
%>
Ensuite, jugez les données reçues par la page ASP et recherchez dans la base de données.
<%
DIM S_KEY, RST, STRSQL
S_KEY = TRIM (demande ("clé")) 'Obtenez la valeur du mot clé de recherche
Si s_key <> "" alors
Set rst = server.createObject ("adodb.recordSet")
StrSql = autokey (s_key) 'La fonction personnalisée autokey () est utilisée ici, la fonction
Le numéro est le cœur de la recherche intelligente
RST.Open STRSQL, CNN, 3,2 'Obtenez l'enregistrement recherché
Si RST.BOF et RST.EOF alors
%>
Aucun résultat n'a été trouvé! ! !
<%
Autre
%>
Le nom de recherche est "<% = s_key%
L'article de> "a été trouvé au total <% = RST.RecordCount%
> Article:
<%
Bien que ce ne soit pas le premier temps de parcourir l'ensemble des enregistrements pour afficher les lettres recherchées
et configurer des liens
%>
href = "info.asp? id = <% = rst (" id ")%>" Target = "_ Blank"> <% = rst ("u_name")
%>
<% = Gauche (RST
("U_info"), 150)% >>
<%
RST.MOVENEXT
Se promener
RST.CLOSE
Définir RST = Rien
Terminer si
Terminer si
%>
Dans le code ci-dessus, il existe une fonction personnalisée Autokey, qui est le noyau qui implémente la recherche intelligente
Où le cœur est. Le code est le suivant:
<%
Fonction Autokey (Strkey)
Const lngsubkey = 2
Dim Lnglenkey, Strnew1, Strnew2, I, StrSubkey
«Vérifiez la légalité de la chaîne, si elle n'est pas légale, accédez à la page d'erreur. Vous pouvez faire la page d'erreur au besoin
Faire des paramètres.
Si instlin (stralise, "=") <> 0 ou instr (strkey, "` ") <> 0 ou instru
(StrKe
Instant (strkey, "'") <> 0 ou instr (Strkey, chr (34)) <> 0 ou instr (strkey, "/")
<> 0 ou instr (strkey, ",") <> 0 ou instlin (strkey, "<") <> 0 ou instru
(Strkey, ">") <> 0 alors
Réponse.redirect "error.htm"
Terminer si
lnglenkey = Len (Strkey)
Sélectionnez Case Lnglenkey
Cas 0 'S'il s'agit d'une chaîne vide, accédez à la page d'erreur
Réponse.redirect "error.htm"
Cas 1 'Si la longueur est 1, aucune valeur n'est définie
strnew1 = ""
strnew2 = ""
Cas sinon 'Si la longueur est supérieure à 1, commencez à partir du premier caractère de la chaîne et prenez la longueur comme
La sous-chaîne de 2 comme conditions de requête
Pour i = 1 à lnglenkey- (lngsubkey-1)
StrSubkey = Mid (Strkey, I, lngsubkey)
strnew1 = strNew1 & "ou u_name like '%" & strSubkey
& "% '"
strNew2 = strNew2 & "ou u_info like '%" & strSubkey
& "% '"
Suivant
Fin de sélection
'Obtenez l'instruction SQL complète
Autokey = "select * from t_sample où u_name like '%" & strkey
& "% 'ou u_info like'%" & Strkey & "% '" & strnew1 & strnew2
Fonction finale
%>
Pour réaliser une recherche intelligente, le noyau est de regrouper automatiquement les mots clés de recherche. Ici, nous faisons
La méthode de boucle dans les sous-chaînes avec la longueur 2 est utilisée. Pourquoi ne pas régler la longueur de la sous-chaîne sur 1, 3, 4 ou quelque chose?
En effet
Si plus de 2, certaines phrases seront perdues. Vous pouvez modifier const lngsubkey = 2 vers d'autres nombres et l'essayer
, Il est clair lequel est le meilleur ou le pire.
Enfin, n'oubliez pas de désactiver la connexion de données pour libérer des ressources.
<%
Cnn.close
Définir CNN = rien
%>
Ce qui précède est de savoir comment implémenter la recherche intelligente. Pour plus de connaissances techniques, veuillez continuer à faire attention au mauvais canal de nouvelles technologies!