如何实现全文检索?

更新时间:2023-07-17 15:39:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

如何实现全文检索?

如何实现全文检索?

我们可以先建立一个包含文件名,文件标题的待检索文件的数据库,然后,用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>

本文来源:https://www.bwwdw.com/article/17a1.html

Top