Lors de la création d'un site Web, le patron m'a demandé d'implémenter une fonction de recherche comme Baidu. Dans le passé, ASP implémentait une recherche floue et des requêtes correspondantes. certainement pas. En effectuant une recherche sur Internet, j'ai découvert qu'il existe plusieurs méthodes proposées sur Internet. L'une consiste à créer un thésaurus, l'autre à utiliser des composants de segmentation de mots, et la troisième est ce dont je parle, la technologie de segmentation automatique des mots, mais c'est le cas. il ne s'agit pas d'une segmentation intelligente des mots, il s'agit simplement de faire correspondre un mot sur deux. La meilleure chose à faire est de créer un vocabulaire et de l’élargir en fonction des entrées des utilisateurs, mais pour les sites Web de petite et moyenne taille, cela n’est peut-être pas nécessaire.
C'est le troisième type de recherche par segmentation de mots dont je parle. Le code est le suivant : je n'entrerai pas dans les détails de son utilisation.
<%
Fonction AutoKey(strKey)
CONST lngSubKey=2
Dim lngLenKey, strNew1, strNew2, i, strSubKey
'Vérifiez la légalité de la chaîne, sinon, accédez à la page d'erreur. Vous pouvez définir la page d'erreur en fonction de vos besoins.
si InStr(strKey,"=")<>0 ou InStr(strKey,"`")<>0 ou InStr(strKey,"")<>0 ou InStr(strKey," ")<>0 ou InStr(strKey ," ")<>0 ou InStr(strKey,"")<>0 ou InStr(strKey,chr(34))<>0 ou InStr(strKey,"")<>0 ou InStr(strKey,", ")<>0 ou InStr(strKey,"<")<>0 ou InStr(strKey,">")<>0 puis
Réponse.Redirection "erreur.htm"
Fin si
lngLenKey=Len(strKey)
Sélectionnez le cas lngLenKey
Cas 0 S'il s'agit d'une chaîne vide, accédez à la page d'erreur
Réponse.Redirection "erreur.htm"
Cas 1 Si la longueur est 1, aucune valeur n'est définie
strNouveau=""
strNouveau2=""
'Case Else Si la longueur est supérieure à 1, commencez par le premier caractère de la chaîne et parcourez la sous-chaîne avec la longueur 2 comme condition de requête
Pour i=1 À lngLenKey-(lngSubKey-1)
strSubKey=Mid(strKey,i,lngSubKey)
strNew1=strNew1 & " ou U_Name comme %" & strSubKey & "%"
strNew2=strNew2 & " ou U_Info comme %" & strSubKey & "%"
Suivant
Fin de la sélection
'Obtenir l'instruction SQL complète
AutoKey="Select * from T_Sample où U_Name comme %" & strKey & "% ou U_Info comme %" & strKey & "%" & strNew1 & strNew2
Fonction de fin
%>