如何实现全文检索?
发布时间:2010-05-24 18:24:00
我们可以先建立一个包含文件名,文件标题的待检索文件的数据库,然后,用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 "<UL>"
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)
' 逐个打开记录集中当前记录所指向的文件。用查找的字串对文件的全文本进行匹配比较
if to_find then
url="chunfeng/" & fn
Response.Write "<A HREF=" & url & ">
" & tit
end if
rcst1.movenext
result=result or to_find
loop
Response.Write "</UL>"
' 把符合条件的文件标题以超级链接形式输出到客户端
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>
猜你喜欢
- 作为前端开发工程师,平时对于Dom的查找遍历和操作是家常便饭。对于优秀的前端来说,也肯定早已有了自己的一套方法来封装这些重复的操作。但是,现
- 今天开发富媒体广告遇到的问题 用JS控制flash 只在IE平台下有效 费尽周折才找到兼容的解决方案方法如下:重点在于 object的id属
- 在这种配置下我们要实现关键词不区分大小写搜索并高亮显示要借助ASP的正则处理了,请看下面代码:<% Function&nbs
- 见下,把数字转成条形图、条形码的一个程序:<%Sub ShowChart(ByRef aValues,
- 富文本编辑器,Rich Text Editor, 简称 RTE, 它提供类似于 Microsoft Word 的编辑功能,容易被不会编写 H
- 需要写个js滑动展开折叠(收缩)的效果,搜索到无忧脚本的一篇贴子,稍加修改了下使其在FF也可应用,代码如下: <
- 使用access数据库时可能用到的数据转换:类型转换涵数:函数 返回类型 expression 参数范围CBool Boolean 任何有效
- 好了,下面我们看看如何在服务器上生成.m3u文件并下传到客户端的:<%dim choose,path,mydb,myset,
- 在正文前,先简短介绍自己。我任职于广州的某个网站服务公司的系统开发员,主要任务是以.Net编写各种web系统,例如CMS.EIP。大家都知道
- 无论何时,IE总是让页面制作者感到那么的黯然销魂,尤其是IE6,IE7次之,虽然IE8已经做了很大的改进,但由于XP用户的数量实在太大,而且
- 如何为XHTML做好准备,XHTML与HTML 4.01标准没有太多的不同。所以将你的代码升级至4.01是个不错的开始。HTML 4.01参
- 二、XML的定义 XML是一个精简的SGML,它将SGML的丰富功能与HTML的易用性结合到Web的应用中。XML保留了SGML的可扩展功能
- <%Dim sc4Json Sub InitScriptControlSet sc
- 代码如下:<% sql="select * from serr where
- 将SQL Server中所有表的列信息显示出来: SELECT SysObjects.Name as tb_name, SysColumns
- sql语句 代码如下:reverse(substring(reverse(Path),1,charindex('/'
- Window.ShowModalDialog使用手册 基本介绍: showModalDialog() (IE 4+ 支持) sho
- 想要一个这玩意,可是找了网上许多着色器,要么是兼容性成问题,要么是匹配不精确,比如说:1、注释里包含字符串、关键词,类似于:/* xxxx&
- 用window.open打开的窗口中,有时候session变量会丢掉,给asp编程带来的一定的麻烦。用参数传递解决它:<DIV&nbs
- MySQL GUI工具很多,本文就常用的Navicat for MySQL与MySQL-Front的特色功能做一个详细介绍与比较。(一)My