精品秘无码一区二区三区老师-精品秘一区二三区免费雷安-精品蜜桃秘一区二区三区-精品蜜桃秘一区二区三区粉嫩-精品蜜桃一区二区三区-精品蜜臀国产aⅴ一区二区三区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

ASP智能搜索的實現

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

[br]<%[br]while not rst.eof '遍歷整個記錄集,顯示搜索到的信息并設置鏈接[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]在上面的代碼中,有一個自定義函數 autokey ,該函數是實現智能搜索的核心所在。代碼如下:[br]<%[br]function autokey(strkey)[br]const lngsubkey=2[br]dim lnglenkey, strnew1, strnew2, i, strsubkey[br][br]'檢測字符串的合法性,若不合法則轉到出錯頁。出錯頁你可以根據需要進行設定。[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 '若為空串,轉到出錯頁[br]response.redirect "error.htm" [br]case 1 '若長度為1,則不設任何值[br]strnew1=""[br]strnew2=""[br]case else '若長度大于1,則從字符串首字符開始,循環取長度為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]要實現智能搜索,其核心就是將搜索關鍵字進行自動分組。在此處,我們使用了循環取長度為2的子串的方法。為什么不將子串長度定為1、3、4或其他呢?這是因為若子串長度小于2即為1時,會失去將關鍵字分組的功能,而若子串長度大于2,則會丟失一些詞組。大家可以將 const lngsubkey=2改為其他數字試一試,孰優孰劣自見分曉。[br]最后,別忘了將數據連接關閉,以釋放資源。[br]<%[br]cnn.close[br]set cnn=nothing[br]%>[br]至此,這個智能搜索引擎已經完成了。你還可以將其繼續完善,比如添加分頁、突出顯示等功能。好了,不耽誤大家時間了,趕快去試一試吧。 ^_^ [br]


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

主站蜘蛛池模板: 久久精品国产99久久美女 | 一区二区三区免费中文字幕高清 | 日韩女同性恋一区二区三区 | 久久夜色精品国产亚洲av动态图 | 国产美女做爰免费视频 | 亚洲精品中文字幕乱码 | 国产成人午夜精品5599 | 亚洲日本在线免费观看 | 精品国产国产精2025久久日 | 亚洲成熟网站源码公司51专业的数字解决方案提供者 | B站影院全球永久免费 | 少妇夜夜春夜夜爽试看视频 | 熟女人妻一区二区三区视频 | 日韩久久免费视频 | 亚洲精品人成无码中文毛片 | 粉嫩小泬无遮挡久久久久久 | 国产网红无码精品视频 | 国产免费高清视频在线观看不卡 | 精品欧美一区二区3d动漫 | 欧美日韩高清一区二区三区 | 亚洲一区二区影院在 | 亚洲人成网站在线观看69影院 | 成人a区在线观看视频 | 麻豆一区二区三区精品视频 | 精品午夜中文字幕熟女人妻在线 | a级大胆欧美人体大胆666 | 亚洲乱亚洲乱少妇无码99P | 五十路熟女丰满大屁股 | 一区二区三区不卡在线 | 国产成人午夜精品55 | 精品成人无码A片免费软件 精品成在人线av无码免费看 | 亚洲丶国产丶欧美一区二区 | 中文字幕久久久人妻无码 | 色综合久久综合欧美综合网 | 欧美日产丝袜精品 | 久久国产欧美国日产综合精品 | 蜜桃视频无码区在线观看 | 成年av动漫网站18禁 | 把腿张开老子臊烂你多P视频 | 怡红院aⅴ国产一区二区 | 国产又色又粗又黄又爽免费 |