|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
ASP脚本是采用明文(plain text)方式来编写的。全文检索 若何用ASP完成网站中的全文检索?
咱们可以先创立一个包括文件名,文件题目的待检索文件的数据库,然后,用ADO体例来会见它,并创立纪录集对象。详细代码和申明见下:
<%@ LANGUAGE="VBSCRIPT" %>
<html>
<head>
<meta NAME="GENERATOR" Content="Microsoft FrontPage 3.0">
<meta HTTP-EQUIV="Content-Type" content="text/html; charset=gb_2312-80">
<title>出色春风之全文检索</title>
<meta name="Microsoft Border" content="tl, default">
</head>
<body BGPROPERTIES="FIXED" BGCOLOR="#00FFFF">
<%
mousepointer=13
Set Conn1 = Server.CreateObject("ADODB.Connection")
conn1.open "DSN=intels"
Set rcst1 = conn1.execute("SELECT * FROM pages_catalogue")
sch_str=request.form("text1")
doubbytes=len(sch_str)\2
sch_str=left(sch_str,doubbytes)
' 婚配字串的长度.预处置Request获得的数据(用户输出的有效信息), 经由过程盘算无效信息长度来截取所需的字串.咱们也能够在输出字串后附加一标记字符(如#或chr(7))来处置.
Response.Write "<CENTER>检索了局<HR><Br>"
Dim result
result =false
Response.Write "
"
do while not rcst1.eof
tit=rcst1.fields("file_title")
fn=rcst1.fields("file_name")
file_name= Server.MapPath ("/") & "\song\chunfeng\" & fn
to_find=text_match(file_name,sch_str)
' 逐一翻开纪录集中以后纪录所指向的文件。用查找的字串对文件的全文本停止婚配对照
……
Response.Write "<A HREF=" & url & ">
" & tit
end if
rcst1.movenext
result=result or to_find
loop
Response.Write "
"
' 把合适前提的文件题目以超等链接模式输入到客户端
if not result then
Response.Write "对不起,没有找到!"
end if
mousepointer=0
%>
<script RUNAT="Server" LANGUAGE="VBScript">
function text_match(filename,search_string)
dim retstring
dim find_pos
Dim fso, a
dim done
text_match=false
Set fso = Server .CreateObject("Scripting.FileSystemObject
")
' 创立剧本的文件体系,翻开文本流以读入
Set a = fso.OpenTextFile(filename, 1, FALSE)
done=a.AtEndOfStream or text_match
Do While not done
retstring = a.ReadLine
find_pos=instr(retstring,search_string)
if find_pos>0 then text_match=true
done=a.AtEndOfStream or text_match
Loop
a.Close
end function
</script>
</body>
</html>
</p> asp,你就只能等着微软给你解决,它不乐意你就只好悲催。而且asp跑在windows服务器上,windows服务器跟linux比起来简直弱爆了! |
|