Usar ASP para implementar las funciones de los motores de búsqueda es muy conveniente, pero ¿cómo implementar una búsqueda inteligente? Después de leer este artículo, encontrará que en realidad es muy simple implementar esta función. ¡Seguimos al editor del New Technology Channel incorrecto para obtener más información!
Pasos para implementar la búsqueda inteligente ASP
El primer paso es crear una base de datos llamada db_sample.mdb (este artículo usa el número de acceso2000
La base de datos se usa como ejemplo) y cree una tabla t_sample en ella. La tabla T_Sample incluye los siguientes campos:
Numeración automática de ID
Texto de Name
Notas u_info
En el segundo paso, comenzamos a diseñar la página de búsqueda Search.asp. Esta página incluye un formulario
(Frm_search), el formulario incluye un cuadro de texto y un botón de envío. Y pon el método del formulario
Establezca la naturaleza en "Get" y el atributo de acción se establece en "Search.asp", lo que significa enviarla a la página web en sí. El código es el siguiente
:
Ingrese las palabras clave:
A continuación, ingresamos a la parte clave de la implementación de la búsqueda inteligente.
Primero, establezca una conexión de base de datos. Agregue el siguiente código al comienzo de Search.asp:
<%
Dim strprovider, CNN
strProvider = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source ="
strProvider = strprovider & server.mappath ("/") y
"/data/db_sample.mdb" 'Suponga que la base de datos se almacena en el directorio de datos en el directorio raíz de la página de inicio
Establecer cnn = server.createObject ("ADODB.Connection")
CNN.OPEN STRPROVIDER 'Open Database Connection
%>
A continuación, juzgue los datos recibidos por la página ASP y la búsqueda en la base de datos.
<%
Dim S_Key, RST, STRSQL
S_key = trim (request ("clave")) 'Obtenga el valor de la palabra clave de búsqueda
Si s_key <> "" entonces
Establecer rst = server.createObject ("ADODB.Recordset")
Strsql = autokey (s_key) 'La función personalizada autokey () se usa aquí, la función
El número es el núcleo de la búsqueda inteligente
Rst.open strsql, CNN, 3,2 'Obtener el registro buscado
Si rst.bof y rst.eof entonces
%>
¡No se encontraron resultados! ! !
<%
Demás
%>
El nombre de la búsqueda es "< %= s_key %
El artículo de> "se encontró en total < %= rst.RecordCount %
> Artículo:
<%
Mientras que no rst.eof 'viaja todo el registro establecido para mostrar las letras buscadas
y configurar enlaces
%>
href = "info.asp? id = <%= rst (" id ")%>" target = "_ en blanco"> <%= rst ("u_name")
%>
<%= Izquierda (RST
("U_info"), 150) %>>
<%
Rst.movenext
Encaminarse a
Rst.lose
Establecer rst = nada
Final si
Final si
%>
En el código anterior, hay una función personalizada autokey, que es el núcleo que implementa una búsqueda inteligente
Donde está el corazón. El código es el siguiente:
<%
Función autokey (strkey)
Const lngsubkey = 2
Dim lnglenkey, strnew1, strnew2, i, strsubkey
'Verifique la legalidad de la cadena, si no es legal, vaya a la página de error. Puede hacer la página de error según sea necesario
Hacer configuración.
if Instr (strkey, "=") <> 0 o Instr (strkey, "` ") <> 0 o Instrat
(strkey, "'") <> 0 o Instr (strkey, "") <> 0 o instrer (strkey, "") <> 0 o instrer (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 Instrat
(strkey, ">") <> 0 entonces
Respuesta.Redirect "Error.htm"
Final si
lnglenkey = len (strkey)
Seleccionar Case Lnglenkey
Caso 0 'Si es una cadena vacía, vaya a la página de error
Respuesta.Redirect "Error.htm"
Caso 1 'Si la longitud es 1, no se establece ningún valor
strNew1 = ""
strnew2 = ""
Caso más 'Si la longitud es mayor que 1, comience desde el primer carácter de la cadena y tome la longitud como
2 subcadena como condiciones de consulta
Para i = 1 a lnglenkey- (lngsubkey-1)
strsubkey = mid (strkey, i, lngsubkey)
strNew1 = strNew1 & "o u_name como '%" y strsubkey
& "%'"
strNew2 = strnew2 y "o u_info como '%" y strsubkey
& "%'"
Próximo
Final seleccionar
'Obtenga la declaración SQL completa
Autokey = "Seleccionar * de t_sample donde u_name como '%" y strkey
& "%'o u_info como'%" & strkey & "%'" & strnew1 & strnew2
Función final
%>
Para lograr una búsqueda inteligente, el núcleo es agrupar automáticamente las palabras clave de búsqueda. Aquí hacemos
Se utiliza el método de bucle en sustros con la longitud 2. ¿Por qué no establecer la longitud de la subcadena en 1, 3, 4 o algo así?
Esto se debe a que si la longitud de la subcadena es inferior a 2, es decir, 1, la función de agrupar las palabras clave se perderá y si la longitud de la subcadena es
Si es mayor de 2, se perderán algunas frases. Puede cambiar const lngsubkey = 2 a otros números y probarlo
, está claro cuál es mejor o peor.
Finalmente, no olvide desactivar la conexión de datos para liberar recursos.
<%
CNN.CLOSE
Establecer CNN = nada
%>
Lo anterior es cómo implementar una búsqueda inteligente. Para obtener más conocimiento técnico, ¡continúe prestando atención al nuevo canal de tecnología incorrecto!