登陆注册
7538600000032

第32章 Windows索引服务实现全文搜索(3)

"yutianen@163.com

dim query

query=request("so")

if query=""then

response.end

end if

"建立索引服务器查询对象

dim ixQuery

set ixQuery=Server.CreateObject("ixsso.Query")

"设定使用的列

ixQuery.Columns="doctitle,path,size,rank"

"设定排序,按rank升序排列(从大到小)

ixQuery.SortBy="rank[d],doctitle"

"设定查询结果显示的最大值

ixQuery.MaxRecords=5

"设定对应的索引编录

ixQuery.Catalog="test"

"设定查询关键词

ixQuery.Query=query

"建立查询结果集

dim queryRS

set queryRS=ixQuery.CreateRecordSet("nonsequential")

"如果查询结果为空,停止执行

if queryrs.eof then

response.write"no result"

response.end

end if

"如果查询结果不为空,则显示结果

response.write"<table border=1bordercolor=red>"

response.write"<tr><td>num</td><td>doctitle</td><td>path</td><td>size

</td><td>rank</td></tr>"

num=0

do while not queryRS.EOF

num=num+1

dim docTitle

docTitle=queryRS("doctitle")

if docTitle=""then docTitle="no title"

dim path

path=queryRS("path")

dim size

size=queryRS("size")

dim rank

rank=queryRS("rank")

response.write"<tr><td>"& num &"</td><td>"& doctitle &"</td><td>"& path &"</td>"

response.write"<td>"& size &"</td><td>"& rank &"</td></tr>"

queryRS.MoveNext()

loop

response.write"</table>"

%>

在搜索栏中输入“鲧”,单击“search”按钮。

在这个例子的基础上,还可以做一些调整。将此文件放入含有被检索文件的虚拟目录中,然后,对path进行调整,或者使用vpath属性。这样就可以实现站内搜索了。

这里,新建文件“so.asp”作为搜索引擎程序,将其放入E:docs文件夹中,然后对E:docs建立虚拟目录,名为“tianen”。

具体的程序如下所示。

案例名称:Web搜索

程序名称:so.asp

<%

"作者:于天恩

"yutianen@163.com

<form action=so.asp>

<input name="so"><input type=submit value="search">

</form>

<%

"作者:于天恩

"yutianen@163.com

dim query

query=request("so")

if query=""then

response.end

end if

"建立索引服务器查询对象

dim ixQuery

set ixQuery=Server.CreateObject("ixsso.Query")

"设定对应的索引编录

ixQuery.Catalog="test"

"设定使用的列

ixQuery.Columns="filename,doctitle,path,size,rank,write"

"设定排序,按rank升序排列(从大到小)

ixQuery.SortBy="rank[d],doctitle"

"设定查询结果显示的最大值

ixQuery.MaxRecords=5

"设定查询关键词

ixQuery.Query=query &"@ size<1000000,@ write>2005/8/26"

"建立查询结果集

dim queryRS

set queryRS=ixQuery.CreateRecordSet("nonsequential")

"如果查询结果为空,停止执行

if queryrs.eof then

response.write"no result"

response.end

end if

"如果查询结果不为空,则显示结果

response.write"<table border=1bordercolor=red>"

response.write"<tr><td>num</td><td>doctitle</td><td>path</td><td>size</td><td>rank</td></tr>"

num=0

do while not queryRS.EOF

num=num+1

dim filename

filename=queryRS("filename")

dim docTitle

docTitle=queryRS("doctitle")

if docTitle=""then docTitle="no title"

dim path

path=queryRS("path")

dim size

size=queryRS("size")

dim rank

rank=queryRS("rank")

response.write"<tr><td>"& num &"</td><td>"& doctitle &"</td><td>"&"<a href="http://localhost/tianen/"& right(path,len(path)-8)&"">"& filename &"</a></td>"

response.write"<td>"& size &"</td><td>"& rank &"</td></tr>"

queryRS.MoveNext()

loop

response.write"</table>"

%>"

在搜索栏中输入“大禹”,单击“search”按钮。

本章的内容到此结束,当然,在这个程序的基础上还可以添加一些功能,比如:添加分页功能、限定搜索文档的时间范围、搜索关键词拆分和提示等功能。限于篇幅,不再赘述。感兴趣的读者可以寻找资料继续学习,遇到不懂的地方还可以给笔者发邮件。

小结

本章介绍了利用Windows索引服务实现全文搜索的原理和使用方法,并且给出了用来解决实际问题的方案。建议读者对SQL Server的运行机制查询资料自学一下,这是非常重要的。

思考与练习

1.Windows索引服务实现全文搜索的原理是什么?

2.开发一套全文搜索系统(使用SQL Server的方法)。

同类推荐
热门推荐
  • 给个机会说爱你

    给个机会说爱你

    本书详细地记载了一个被剩下的大龄美女林小雅的每一个相亲的有趣故事,主基调是比较轻松的那种,不甘心被剩下的大龄美女林小雅对待爱情,对待婚姻依然有她自己的选择。
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!
  • 超修仙文明

    超修仙文明

    一次太古神劫后,修真世界进入末法时代,世间妖魔鬼怪肆虐横行,原本统御四方的人族成为食物链末端。经过十万年的休养生息,修真纪元翻开崭新一页,进入2.0时代:可幻化虚拟世界的太虚异境,林立的学校替代了修真门派,炼器技术突飞猛进,整个修真世界向现代都市化方向变形……经历两次穿越的资深穿越者时青羽压力山大,作为太古神劫的始作俑者,盖世妖神的他一觉醒来,发现世界发生天翻地覆的变化,现在的他要在人间开始艰苦卓绝的修炼生涯。“你们说的青羽妖神,我很清楚呀,他哪里会是毁灭世界的反派boss,他分明就是一个有爱心,有礼貌,有素质的三有青年啊。”时青羽振振有词,毫不脸红的解释。这一本正经胡说八道的感觉就是爽!
  • 就想粘着你

    就想粘着你

    “你为什么老是粘着我呀!”尹乐心不耐烦的看着他说。“因为喜欢你,就想粘着你!”在没有遇到你之前,我不知道喜欢一个人是这般的美好,我愿意为你做任何你想做却不敢做的事情。总之,就想粘着你!
  • 龙道兵王

    龙道兵王

    龙道兵王,利剑出鞘,为国而战,为民出力,历经磨难,九死一生,无怨无悔,成就一个个热血传奇故事。
  • 月染花容

    月染花容

    谁说她是离卦之人命中带火,一生平顺安康?平顺有平顺的过法,不安康有不安康的生活,任凭意外连连她见招拆招怡然自得。但……这个醉倒在她家门口的陌生人是怎么回事,要做她的随从就做吧,就这么跟了她短暂的一辈子。来世啊,她可不想再遇见他。谁说他不懂执妄滋味?陪她静候花开赏日暮斜阳,为她雨中打伞深夜起弦,到她病故才恍然察觉人的一生实在太短。没事,还有来世。来世也不够?那就生生世世,伴她左右,那便是他的执妄。
  • 抑郁症男主的一百种死法

    抑郁症男主的一百种死法

    逃窜十年的抢劫杀人犯落网,并且判了死刑,坏人得到了应有的惩罚。但是,之后呢?受害者亲属十年的痛苦真正会因为凶犯落网而消解吗?杀人犯的女儿又是否会成为下一个杀人犯?这世上真的有救赎吗?如果我的救赎是你,那你的救赎又是谁?相差十岁的青梅竹马。男主是斯文老师挂,爱得小心翼翼。女主外向阳光小学霸,爱得明目张胆,且不畏人言。不务正业时,做梦梦到的一个小短篇。免费完结,不会入V。
  • 玉堂佳偶

    玉堂佳偶

    有道是富贵难得,佳偶难求!可尚书千金覃楠兮,明明身在富贵乡,眼前还放着个前程似锦的玉面将军,她却誓死不嫁,竟然还要抗旨逃婚!结果,一路逃婚,却是越逃越昏!一个又一个谜团迎面扑来。看这个心思单纯,脑筋复杂的尚书小姐,怎样在迷雾中揭开层层阴谋,又怎样在血色浮沉里挽住刻骨真情......
  • 萌学园之神兽再现

    萌学园之神兽再现

    失踪的人回归,古神兽传承者结局如何......
  • 命运改造师

    命运改造师

    “少年,我看你骨骼惊奇,你想当皇帝吗?”“不想……”“不,你想!”“可我只是个清洁工。”“没事,你现在有当皇帝的命!”…………新书求收藏、推荐票!