Sangat mudah menggunakan ASP untuk mengimplementasikan fungsi mesin pencari, tetapi bagaimana cara mengimplementasikan pencarian cerdas yang mirip dengan 3721? Misalnya, ketika Anda memasukkan "orang Tionghoa" di kotak kriteria pencarian, kata kunci seperti "Tiongkok" dan "orang" secara otomatis diekstraksi dan dicari di database. Setelah membaca artikel ini, Anda akan menemukan bahwa fungsi ini sangat sederhana untuk diterapkan.
Langkah pertama adalah membuat database bernama db_sample.mdb (artikel ini menggunakan database Access2000 sebagai contoh) dan membuat tabel T_Sample di dalamnya. Tabel T_Sample mencakup bidang-bidang berikut:
ID Nomor otomatis U_Name Teks U_Info Keterangan
Pada langkah kedua, kita mulai mendesain halaman pencarian Search.asp. Halaman ini mencakup formulir (Frm_Search), yang mencakup kotak teks dan tombol kirim. Dan atur atribut metode formulir menjadi "dapatkan" dan atribut tindakan menjadi "Search.asp", yaitu mengirimkannya ke halaman web itu sendiri. Kodenya adalah sebagai berikut:
Berikut cuplikan kodenya:
<!-- Pencarian.asp -->
<form name="frm_Search" method="get" action="Search.asp">
Silakan masukkan kata kunci:
<masukan tipe="teks" nama="kunci" ukuran="10">
<input type="kirim" value="penelusuran">
</form>
Selanjutnya, kita memasuki bagian penting dalam mewujudkan penelusuran cerdas.
Pertama, buat koneksi database. Tambahkan kode berikut di awal Search.asp:
Berikut cuplikan kodenya:
<%
Redupkan strProvider, CNN
strProvider="Penyedia=Microsoft.Jet.OLEDB.4.0;Sumber Data="
strProvider=strProvider & Server.MapPath("") & "datadb_Sample.mdb" Asumsikan database disimpan di direktori data di bawah direktori root beranda
Setel CNN = Server.CreateObject("ADODB.koneksi")
CNN.Open strProvider membuka koneksi database
%>
Selanjutnya, tentukan data yang diterima halaman ASP dan cari di database.
Berikut cuplikan kodenya:
<font color="#FF0000">Tidak ada hasil yang ditemukan! ! ! </font>
<%
Kalau tidak
%>
Cari item bernama "<font color="#FF0000"><%= S_Key %></font>", dan total <font color="#FF0000"><%= RST.RecordCount %></font > ditemukan Barang: <p>
<%
Sementara Not RST.EOF melintasi seluruh kumpulan catatan, menampilkan informasi yang dicari dan menyetel tautan
%>
<!-- Ini dapat ditetapkan sebagai target tautan yang Anda perlukan-->
<font style="font: 12pt 宋体"><a href="info.asp?ID=<%= RST("ID") %>" target="_blank"><%= RST("U_Name") % ></a></font>
<!--Tampilkan beberapa detail-->
<font style="font: 9pt 宋体"><%= Kiri(RST("U_Info"),150) %></font><p>
<%
RST.PindahBerikutnya
Pergi ke
Pertama.Tutup
Setel RST=Tidak Ada
Akhiri Jika
Akhiri Jika
%>
Pada kode di atas, terdapat fungsi kustom AutoKey, yang merupakan inti dari mewujudkan pencarian cerdas. Kodenya adalah sebagai berikut:
Berikut cuplikan kodenya:
<%
Fungsi Kunci Otomatis (strKey)
CONST lngSubKey=2
Redupkan lngLenKey, strNew1, strNew2, i, strSubKey
'Periksa legalitas string, jika tidak, buka halaman kesalahan. Anda dapat mengatur halaman kesalahan sesuai dengan kebutuhan Anda.
jika InStr(strKey,"=")<>0 atau InStr(strKey,"`")<>0 atau InStr(strKey,"")<>0 atau InStr(strKey," ")<>0 atau InStr(strKey ," ")<>0 atau InStr(strKey,"")<>0 atau InStr(strKey,chr(34))<>0 atau InStr(strKey,"")<>0 atau InStr(strKey,", ")<>0 atau InStr(strKey,"<")<>0 atau InStr(strKey,">")<>0 lalu
Respons.Redirect "error.htm"
Akhiri Jika
lngLenKey=Len(strKey)
Pilih Kasus lngLenKey
Kasus 0 Jika string kosong, buka halaman kesalahan
Respons.Redirect "error.htm"
Kasus 1 Jika panjangnya 1, tidak ada nilai yang ditetapkan
strBaru1=""
strBaru2=""
'Kasus Lain Jika panjangnya lebih besar dari 1, mulailah dari karakter pertama string dan ulangi substring dengan panjang 2 sebagai kondisi kueri
Untuk i=1 Ke lngLenKey-(lngSubKey-1)
strSubKey=Tengah(strKey,i,lngSubKey)
strNew1=strNew1 & " atau U_Name seperti %" & strSubKey & "%"
strNew2=strNew2 & " atau U_Info seperti %" & strSubKey & "%"
Berikutnya
Pilihan Akhir
'Dapatkan pernyataan SQL lengkap
AutoKey="Pilih * dari T_Sample di mana U_Name seperti %" & strKey & "% atau U_Info seperti %" & strKey & "%" & strNew1 & strNew2
Fungsi Akhir
%>
Untuk mewujudkan pencarian cerdas, intinya adalah mengelompokkan kata kunci pencarian secara otomatis. Di sini, kami menggunakan metode perulangan melalui substring dengan panjang 2. Mengapa tidak mengatur panjang substring menjadi 1, 3, 4 atau apa pun? Hal ini dikarenakan jika panjang substring kurang dari 2 yaitu 1 maka fungsi pengelompokan kata kunci akan hilang, dan jika panjang substring lebih besar dari 2 maka beberapa frase akan hilang. Anda dapat mencoba mengubah CONST lngSubKey=2 ke nomor lain dan Anda akan melihat sendiri mana yang lebih baik.
Terakhir, jangan lupa untuk menutup koneksi data untuk melepaskan sumber daya.
Berikut cuplikan kodenya:
<%
CNN.Tutup
Setel CNN=Tidak Ada
%>
Pada titik ini, mesin pencari cerdas ini telah selesai. Anda juga dapat terus memperbaikinya, seperti menambahkan pagination, highlight, dan fungsi lainnya. Oke, saya tidak akan menyia-nyiakan waktu semua orang, ayo kita coba.