Al crear un sitio web, el jefe me pidió que implementara una función de búsqueda como Baidu. En el pasado, ASP implementaba búsquedas difusas y consultas coincidentes. de ninguna manera. Al buscar en Internet, descubrí que hay varios métodos proporcionados en Internet. Uno es crear un diccionario de sinónimos, el otro es usar componentes de segmentación de palabras y el tercero es de lo que estoy hablando, tecnología de segmentación automática de palabras, pero así es. No es una segmentación inteligente de palabras, es simplemente unir palabras alternas. Lo mejor es crear un vocabulario y ampliarlo en función de las aportaciones del usuario, pero para sitios web pequeños y medianos esto puede no ser necesario.
Este es el tercer tipo de búsqueda por segmentación de palabras del que estoy hablando. El código es el siguiente: no explicaré cómo usarlo.
<%
Función AutoKey(strKey)
CONST IngSubKey=2
Dim lngLenKey, strNew1, strNew2, i, strSubKey
'Comprueba la legalidad de la cadena, si no, ve a la página de error. Puede configurar la página de error según sus necesidades.
si InStr(strKey,"=")<>0 o InStr(strKey,"`")<0 o InStr(strKey,"")<>0 o InStr(strKey," ")<>0 o InStr(strKey ," ")<>0 o InStr(strKey,"")<>0 o InStr(strKey,chr(34))<>0 o InStr(strKey,"")<0 o InStr(strKey,", ")<>0 o InStr(strKey,"<")<0 o InStr(strKey,">")<0 entonces
Respuesta.Redireccionamiento "error.htm"
Terminar si
lngLenKey=Len(claveClave)
Seleccionar caso lngLenKey
Caso 0 Si es una cadena vacía, vaya a la página de error
Respuesta.Redireccionamiento "error.htm"
Caso 1 Si la longitud es 1, no se establece ningún valor
strNew1=""
strNew2=""
'Case Else Si la longitud es mayor que 1, comience desde el primer carácter de la cadena y recorra la subcadena con una longitud de 2 como condición de consulta.
Para i=1 a lngLenKey-(lngSubKey-1)
strSubKey=Medio(strKey,i,lngSubKey)
strNew1=strNew1 & " o U_Name como %" & strSubKey & "%"
strNew2=strNew2 & " o U_Info como %" & strSubKey & "%"
Próximo
Finalizar selección
'Obtenga la declaración SQL completa
AutoKey="Seleccione * de T_Sample donde U_Name como %" & strKey & "% o U_Info como %" & strKey & "%" & strNew1 & strNew2
Función final
%>