国产高清在线免费观看-国产高清在线免费无码-国产高清在线男人的天堂-国产高清在线视频-国产高清在线视频精品视频-国产高清在线视频伊甸园

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

ASP智能搜索的實現

admin
2010年7月22日 21:29 本文熱度 5872
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

主站蜘蛛池模板: 国产成人综合日韩精品无码不卡 | 人妻中文字幕一区二区三区 | 欧美激情偷乱人伦小说视频 | 国产午夜麻豆影院在线观看 | 香蕉AV亚洲精品一区二区 | 精品熟女少妇av免费久久 | 亚洲图区综合在线 | 国产麻豆精选AV | 亚洲综合成人婷婷五月在线观看 | 中文字幕日本人伦无码 | 国产剧情三级片在线观看 | 激情欧美一区二区三区中文字幕 | 少妇饥渴无码高潮A片爽爽 少妇激情av一区二区三区 | 国产情侣一级开放 | 四虎影视影院手机在线看 | 免费国产美女爽到喷出水来视频 | 91在线无码精品秘入口91 | 国产蜜桃一区二区三区在线观看 | 999精品无码a片在线1级 | 久久夜色精品国产www红杏 | 日韩欧美综合在线 | 无码专区永久免费av网 | 日韩高清在线中文字带字幕 | 成人午夜性a级毛片免费 | 亚洲精品成人AV在线播放 | 无码人妻久久一区二区三 | 久久久久无码国产 | 久久综合一区二区 | 中文字幕av无码一区二区三区电影 | 毛片免费永久不卡 | 亚洲精品成人无码区一在线观看 | 国产日韩欧美一区二区东京热完全开放使用 | 国产孰妇精品AV片国产m3u8 | 亚洲中文无码h在线 | 东京热加勒比无码少妇 | 91亚洲天天人人久久图片 | 国产精品69人妻无码久久 | 国产精品免费观看调教网 | 国产VA精品午夜福利视频 | 欧美另类精品一区二区三区 | 国产成人麻豆精品午夜福利在线 |