Menggunakan ASP untuk mengimplementasikan fungsi mesin pencari sangat nyaman, tetapi bagaimana menerapkan pencarian cerdas? Setelah membaca artikel ini, Anda akan menemukan bahwa sebenarnya sangat mudah untuk mengimplementasikan fungsi ini. Mari ikuti editor saluran teknologi baru yang salah untuk mempelajari lebih lanjut!
Langkah -langkah untuk mengimplementasikan pencarian cerdas ASP
Langkah pertama adalah membuat database yang disebut db_sample.mdb (artikel ini menggunakan nomor Access2000
Basis data digunakan sebagai contoh), dan buat tabel t_sample di dalamnya. Tabel T_Sample mencakup bidang -bidang berikut:
ID Penomoran Otomatis
U_name Teks
Catatan u_info
Pada langkah kedua, kami mulai merancang halaman pencarian pencarian.asp. Halaman ini termasuk formulir
(FRM_SEARCH), Formulirnya mencakup kotak teks dan tombol kirim. Dan letakkan metode formulir
Atur alam menjadi "dapatkan" dan atribut tindakan diatur ke "Search.asp", yang berarti mengirimkannya ke halaman web itu sendiri. Kodenya adalah sebagai berikut
:
Harap masukkan kata kunci:
Selanjutnya, kami memasuki bagian penting dari menerapkan pencarian cerdas.
Pertama, buat koneksi basis data. Tambahkan kode berikut ke awal pencarian.asp:
<%
Redup strprovider, cnn
strProvider = "penyedia = microsoft.jet.oledb.4.0; sumber data ="
strProvider = strProvider & server.mappath ("/") &
"/data/db_sample.mdb" 'Misalkan database disimpan di direktori data di direktori root halaman beranda
Setel cnn = server.CreateObject ("adodb.connection")
CNN.Open StrProvider 'Open Database Connection
%>
Selanjutnya, menilai data yang diterima oleh halaman ASP dan mencari di database.
<%
DIM S_KEY, RST, STRSQL
S_key = trim (request ("key")) 'Dapatkan nilai kata kunci pencarian
Jika S_Key <> "" lalu
Set RST = Server.CreateObject ("AdodB.Recordset")
Strsql = autokey (s_key) 'fungsi kustom autokey () digunakan di sini, fungsinya
Angka adalah inti dari pencarian cerdas
Rst.open strsql, cnn, 3,2 'Dapatkan catatan yang dicari
Jika rst.bof dan rst.eof maka
%>
Tidak ada hasil yang ditemukan! Lai Lai
<%
Kalau tidak
%>
Nama pencarian adalah "< %= s_key %
Item> "ditemukan secara total < %= rst.recordcount %
> Item:
<%
Meskipun tidak rst.eof 'bepergian seluruh rekaman set untuk menampilkan huruf yang dicari
dan mengatur tautan
%>
href = "info.asp? id = <%= rst (" id ")%>" target = "_ blank"> <%= rst ("u_name")
%>
<%= Kiri (pertama
("U_info"), 150) %>>
<%
Rst.movenext
Pergi ke
Rst.close
Atur rst = tidak ada
Akhiri jika
Akhiri jika
%>
Dalam kode di atas, ada fungsi kustom Autokey, yang merupakan kernel yang mengimplementasikan pencarian cerdas
Dimana hatinya berada. Kodenya adalah sebagai berikut:
<%
Fungsi autokey (strkey)
Const lngsubkey = 2
Redup lnglenkey, strnew1, strnew2, i, strsubkey
'Periksa legalitas string, jika tidak legal, buka halaman kesalahan. Anda dapat melakukan halaman kesalahan sesuai kebutuhan
Membuat pengaturan.
if 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, "'") <> 0 atau instr (strkey, chr (34)) <> 0 atau instr (strkey, "/")
<> 0 atau instr (strkey, ",") <> 0 atau instr (strkey, "<") <> 0 atau instr
(strkey, ">") <> 0 lalu
Response.redirect "error.htm"
Akhiri jika
lnglenkey = len (strkey)
Pilih kasus lnglenkey
Kasus 0 'Jika itu adalah string kosong, buka halaman kesalahan
Response.redirect "error.htm"
Kasus 1 'Jika panjangnya 1, tidak ada nilai yang ditetapkan
strnew1 = ""
strnew2 = ""
Casing lain 'jika panjangnya lebih besar dari 1, mulailah dari karakter pertama string dan ambil panjangnya
Substring 2 sebagai kondisi kueri
Untuk i = 1 ke lnglenkey- (lngsubkey-1)
strsubkey = mid (strkey, i, lngsubkey)
strnew1 = strnew1 & "atau u_name seperti '%" & strsubkey
& "%'"
strnew2 = strnew2 & "atau u_info seperti '%" & strsubkey
& "%'"
Berikutnya
Akhiri Pilih
'Dapatkan pernyataan SQL lengkap
Autokey = "Pilih * dari T_Sample Where U_Name Like '%" & Strky
& "%'atau u_info seperti'%" & strkey & "%'" & strnew1 & strnew2
Fungsi akhir
%>
Untuk mencapai pencarian cerdas, intinya adalah mengelompokkan kata kunci pencarian secara otomatis. Di sini kita buat
Metode perulangan ke dalam substring dengan panjang 2 digunakan. Mengapa tidak mengatur panjang substring ke 1, 3, 4 atau sesuatu?
Ini karena jika panjang substring kurang dari 2, yaitu, 1, fungsi kata kunci pengelompokan akan hilang, dan jika panjang substringnya
Jika lebih dari 2, beberapa frasa akan hilang. Anda dapat mengubah const lngsubkey = 2 ke nomor lain dan mencobanya
, jelas mana yang lebih baik atau lebih buruk.
Akhirnya, jangan lupa untuk mematikan koneksi data untuk membebaskan sumber daya.
<%
Cnn.close
Atur cnn = tidak ada
%>
Di atas adalah cara menerapkan pencarian cerdas. Untuk pengetahuan teknis lebih lanjut, silakan terus perhatikan saluran teknologi baru yang salah!