欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

ASP智能搜索的實(shí)現(xiàn)

admin
2010年7月22日 21:29 本文熱度 5341
asp實(shí)現(xiàn)搜索引擎的功能是一件很方便的事,可是,如何實(shí)現(xiàn)類似3721的智能搜索呢?比如,當(dāng)在搜索條件框內(nèi)輸入“中國人民”時(shí),自動從中提取“中國”、“人民”等關(guān)鍵字并在數(shù)據(jù)庫內(nèi)進(jìn)行搜索??赐瓯疚暮螅憔涂梢园l(fā)現(xiàn),這個(gè)功能實(shí)現(xiàn)起來竟然是如此的簡單。ok,follow me![br][br][br]第一步,我們要建立一個(gè)名為db_sample.mdb的數(shù)據(jù)庫(本文以access2000數(shù)據(jù)庫為例),并在其中建立表t_sample。表t_sample包括如下字段:[br]id 自動編號[br]u_name 文本[br]u_info 備注[br]第二步,我們開始設(shè)計(jì)搜索頁面search.asp。該頁面包括一個(gè)表單(frm_search),表單內(nèi)包括一個(gè)文本框和一個(gè)提交按鈕。并將表單的method屬性設(shè)為“get” ,action屬性設(shè)為“search.asp",即提交給網(wǎng)頁自身。代碼如下:[br][br][br]
[br]請輸入關(guān)鍵字: [br][br][br]
[br]下面,就進(jìn)入了實(shí)現(xiàn)智能搜索的關(guān)鍵部分。[br]首先,建立數(shù)據(jù)庫連接。在search.asp的開始處加入如下代碼:[br]<%[br]dim strprovider,cnn[br]strprovider="provider=microsoft.jet.oledb.4.0;data source="[br]strprovider=strprovider & server.mappath("\") & "\data\db_sample.mdb" '假設(shè)數(shù)據(jù)庫存放在主頁根目錄下的data目錄下[br]set cnn = server.createobject("adodb.connection")[br]cnn.open strprovider '打開數(shù)據(jù)庫連接[br]%>[br]接下來,判斷 asp頁所接收到的數(shù)據(jù),并在數(shù)據(jù)庫中進(jìn)行搜索。[br]<%[br]dim s_key,rst,strsql[br]s_key = trim(request("key")) '得到搜索關(guān)鍵字的值[br]if s_key <>"" then [br]set rst=server.createobject("adodb.recordset")[br]strsql=autokey(s_key) '此處使用自定義函數(shù) autokey(),該函數(shù)為實(shí)現(xiàn)智能搜索的核心[br]rst.open strsql,cnn,3,2 '得到搜索后的記錄[br][br]if rst.bof and rst.eof then[br]%>[br]未找到任何結(jié)果!??! [br]<%[br]else[br]%>[br]搜索名稱為“<%= s_key %>”的項(xiàng),共找到 <%= rst.recordcount %> 項(xiàng):

[br]<%[br]while not rst.eof '遍歷整個(gè)記錄集,顯示搜索到的信息并設(shè)置鏈接[br]%>[br][br]" target="_blank"><%= rst("u_name") %>
[br][br]<%= left(rst("u_info"),150) %>

[br]<%[br]rst.movenext[br]wend[br]rst.close[br]set rst=nothing[br]end if[br]end if[br]%>[br]在上面的代碼中,有一個(gè)自定義函數(shù) autokey ,該函數(shù)是實(shí)現(xiàn)智能搜索的核心所在。代碼如下:[br]<%[br]function autokey(strkey)[br]const lngsubkey=2[br]dim lnglenkey, strnew1, strnew2, i, strsubkey[br][br]'檢測字符串的合法性,若不合法則轉(zhuǎn)到出錯(cuò)頁。出錯(cuò)頁你可以根據(jù)需要進(jìn)行設(shè)定。[br]if instr(strkey,"=")<>0 or instr(strkey,"`")<>0 or instr(strkey,"'")<>0 or instr(strkey," ")<>0 or instr(strkey," ")<>0 or instr(strkey,"'")<>0 or instr(strkey,chr(34))<>0 or instr(strkey,"\")<>0 or instr(strkey,",")<>0 or instr(strkey,"<")<>0 or instr(strkey,">")<>0 then[br]response.redirect "error.htm"[br]end if[br][br]lnglenkey=len(strkey)[br]select case lnglenkey[br]case 0 '若為空串,轉(zhuǎn)到出錯(cuò)頁[br]response.redirect "error.htm" [br]case 1 '若長度為1,則不設(shè)任何值[br]strnew1=""[br]strnew2=""[br]case else '若長度大于1,則從字符串首字符開始,循環(huán)取長度為2的子字符串作為查詢條件[br]for i=1 to lnglenkey-(lngsubkey-1)[br]strsubkey=mid(strkey,i,lngsubkey)[br]strnew1=strnew1 & " or u_name like '%" & strsubkey & "%'"[br]strnew2=strnew2 & " or u_info like '%" & strsubkey & "%'"[br]next[br]end select[br][br]'得到完整的sql語句[br]autokey="select * from t_sample where u_name like '%" & strkey & "%' or u_info like '%" & strkey & "%'" & strnew1 & strnew2[br][br]end function[br]%>[br]要實(shí)現(xiàn)智能搜索,其核心就是將搜索關(guān)鍵字進(jìn)行自動分組。在此處,我們使用了循環(huán)取長度為2的子串的方法。為什么不將子串長度定為1、3、4或其他呢?這是因?yàn)槿糇哟L度小于2即為1時(shí),會失去將關(guān)鍵字分組的功能,而若子串長度大于2,則會丟失一些詞組。大家可以將 const lngsubkey=2改為其他數(shù)字試一試,孰優(yōu)孰劣自見分曉。[br]最后,別忘了將數(shù)據(jù)連接關(guān)閉,以釋放資源。[br]<%[br]cnn.close[br]set cnn=nothing[br]%>[br]至此,這個(gè)智能搜索引擎已經(jīng)完成了。你還可以將其繼續(xù)完善,比如添加分頁、突出顯示等功能。好了,不耽誤大家時(shí)間了,趕快去試一試吧。 ^_^ [br]


該文章在 2010/7/22 21:29:49 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved