登陆注册
19122000000031

第31章 Windows索引服务实现全文搜索(2)

下面调用COM对象,来实现Windows搜索服务的Web调用。这里可以使用的技术很多,如ASP,ASP.NET,JSP,PHP等。但是,从直接调用COM对象的方便程度来讲,ASP是最佳选择,ASP技术之所以至今还没有灭亡,它的强大之处就在于COM组件的调用。在ASP.NET中使用COM就很不地道了,JSP来调用COM组件,运行速度比较慢,PHP调用的速度还可以,要使用COM类库。

只要使用Windows服务器,用任何技术都可以构建出类似的搜索系统,但是,这里推荐用ASP技术。

这里要使用的组件是:索引服务查询组件,其建立方法如下:

dim ix Query"Index Server query object.

set ix Query=Server.Create Object("ixsso.Query")

这个查询组件包含很多属性,最常用的为Catalog,Columns,Sort By,Max Records和Query。

①Catalog属性:用来设定索引服务的编录,也就是程序执行时关联的编录,比如:

ixQuery.Catalog="test"

设定程序与“test”编录关联。

②Columns属性:可以设定对象返回的每个搜索结果所含有的属性列。索引服务查询组件返回的查询结果包含有很多属性,可以看到一部分。

如果使用ixQuery.Columns="doctitle,path,size,rank"就可以设定返回结果包含着四个属性。

③SortyBy属性:用来指定返回结果集的排序规则,比如:

ix Query.Sort By="rank[a]"

为按照rank列值升序排列(a代表Ascending),通常使用ixQuery.Sort By="rank[d]"。

即:按照rank列值降序排列(d代表descending)。

可以按多个列值组合排序,如:

ix Query.Sort By="rank[d],doctitle"

④Max Records属性:用来限定返回的最多结果数量,比如:

ix Query.Max Records=5

限定最多返回5条记录,即便有10000条记录符合条件,也只返回5条。

⑤Query属性:用来设定查询字符串,比如:

ix Query.Query="共工"

设定索引服务执行查询的关键词为“共工”。

对于前面设定的属性,可以用下面的方法来进一步限定结果,如:

@ size<100"文件必须小于100字节

@ write>2005/8/26 "文件必须在2005年8月26以后建立

与前面的关键词限定合起来就是:

ixQuery.Query="共工@ size<100,@ write>2005/8/26"

类似地,设定只在某一类型(如:.doc文件)的文件中查询,可以使用:

# filename*.doc

在设定好了这些属性之后,下面就可以执行检索了。使用过ADO组件的用户会对这个组件的使用方法感到非常熟悉。

首先建立查询结果集:

dim queryRS

set queryRS=ixQuery.CreateRecordSet("nonsequential")

然后对查询结果集进行遍历,即可将所有结果输出:

do while not queryRS.EOF

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>"&; doctitle &;"</td><td>"&; path &;"</td>"

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

queryRS.MoveNext()

loop

下面举例说明索引服务查询组件的使用,这个案例只含有一个文件。

案例名称:Web搜索

程序名称:ix Query.asp

<%

"作者:于天恩

"yutianen@163.com

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

dim ix Query

set ix Query=Server.Create Object("ixsso.Query")

"设定使用的列

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

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

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

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

ixQuery.MaxRecords=5

"设定对应的索引编录

ixQuery.Catalog="test"

"设定查询关键词

ixQuery.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>"

%>

在这个例子的基础上,下面做一些调整,加上一个搜索框。

案例名称:Web搜索

程序名称:my.asp

<form action=my.asp>

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

</form>

<%

"作者:于天恩

同类推荐
  • 尖子生高效学习法

    尖子生高效学习法

    在同一所学校、同一个班级学习,不同的学生学习结果各不相同,有的学生能够取得可喜的成绩,最终如愿进入大学殿堂;有的学生成绩不好也不能上升,最终名落孙山。造成后一种结果的原因很多,其中最主要的原因就是学习效率不高。对于学习来说,谁在有限的时间里掌握的知识多,谁就能成为佼佼者。我们常常看到不少学生非常努力,有的晚上学习到第二天凌晨,做的题目也很多,但是成绩却总是不好,这就是效率不高的结果。要想提高效率,必须掌握科学的学习方法。本书根据目前教学情况、考试形势、知识结构及中学生的学习特点,总结出了一套有助于提高学习效率的方法。
  • 朝花夕拾·野草

    朝花夕拾·野草

    本书作于1926年,共10篇,前5篇写于北京,后5篇写于厦门。最初以《旧事重提》为总题目陆续发表于《莽原》半月刊。1927年,鲁迅在广州将本书重新编订,写《小引》、《后记》,并改名为《朝花夕拾》,本书是了解与研究鲁迅早期生活、思想和当时社会风貌的重要艺术文献。
  • 政府新闻发言人教程

    政府新闻发言人教程

    本书共分三篇:观念篇、技巧篇与专题篇,每篇包含三章。每章之前均有对该章重点内容的概括,根据不同篇章的内容将配有不同形式的案例,有的案例附在一章之后,有的融进正文之中。
  • 培养学生心灵成长的经典故事——敞开心扉拥抱生活

    培养学生心灵成长的经典故事——敞开心扉拥抱生活

    在这套丛书里,我们针对青少年的心理特点,专门选择了一些特殊的故事,分别对他们在这一时期将会遭遇的情感问题、生活问题、学习问题、交友问题以及各种心理健康问题,从心理学的角度进行剖析和讲解,并提出了解决问题的方法和措施,以供同学们参考借鉴。
  • 实用一生的语言精华丛书:校园实用经典歇后语

    实用一生的语言精华丛书:校园实用经典歇后语

    《实用一生的语言精华丛书:校园实用经典歇后语》是一本科普类读物。歇后语、座右铭、格言等无疑都是一种浓缩的语言精华,可能经过千百年来人们的不断提炼和传承,才得以流传至今。《实用一生的语言精华丛书:校园实用经典歇后语》主要内容包括:歇后语类型的语言精华。集趣味性和知识性于一身,可以作为广大青少年朋友修身养性、努力学习的一个指路明灯。
热门推荐
  • 网游之异域

    网游之异域

    我本是一个默默刷怪的小菜鸟。一个女的屁颠屁颠地跑过来问我:“你来当一个强者好不好?”我说:“好啊。”于是乎,我就变成了一个强者。左持“弑神剑”悍正义,右提“诛魔刃”助邪恶。左搂正义天使,右抱死亡女神。颤抖吧!凡人们!
  • 异世之全系召唤师

    异世之全系召唤师

    一场以‘玄月清’引发的阴谋,把远在21世纪的风影儿牵扯了进去。心思缜密而又有点小迷糊的她,迷迷糊糊地撞破了这场阴谋。本就冷情冷性的她,并没有选择逃避,迎风直上,站在大陆的巅峰。身世之谜即将解开,那神秘的红衣男子却选择了离开。一只守候在她身旁的影幻洛温柔的笑着,将一柄匕首刺入自己的胸膛,血染红了他的衣襟,那刺眼的红,模糊了风影儿的双眼……*****新人新书求支持!推荐、打赏来者不拒~为方便下次观看,请戳一下‘加入书架’。书友群:134390822
  • 圣龙的传说

    圣龙的传说

    主要写了一位名叫紫翼的龙族皇子梦想成为传说中的圣龙,而因为自身的变异,使自己修炼比任何生物都要困难,不过在此至前,他却歪打正着的,发现了龙身上的八脉,而他却花了几个月的时间才贯通第一脉。百年一度的竟选圣龙骑士就开始了,而最后又是谁获胜,古老的学院又有怎样的高手与同伴,紫翼崛起,又会发生怎样的故事………
  • 恋爱指导师

    恋爱指导师

    刚大学毕业不久的年小久,在被一心向往的几家公司拒绝之后,应聘到新成立不久的天穹心语公司。虽然没有恋爱经验,刚开始不适应,但凭借自己的努力,刻苦钻研,耐心请教,最终成为了一名恋爱指导专家的励志故事。在这一过程中,年小久语音邂逅了一位不善言辞、腹黑但却遭遇情感创伤的华盛公司CEO谢冰清。通过一次次的语音交流,视频交流,在解决了谢冰清的情感问题后,生活上再无交集的两人却因一次意外再次相遇。。。想看看这位高富帅是如何一步步落入小九的爱情陷阱里并深陷其中的,那么请锁定《恋爱指导师》不要走开。。。
  • 快穿之男主攻略记

    快穿之男主攻略记

    从小身体不好的他在哥哥的努力下活到了18岁,然而也只活到了18岁。一朝醒来,发现自己莫名其妙绑定了系统君,并在弯路上越走越远......
  • 七鬼神

    七鬼神

    内通五脏六腑,外连四肢百骸,内外连接、上下贯通,“行气血,营阴阳,决生死”,经络通百难不死,不可不通。“通者不痛,痛者不通”。
  • 重生配上失忆

    重生配上失忆

    冬凌很感激老天,给了她一次重生的机会,虽然不是初遇,却也够了。这一次的她,会牢牢抓住他的,一定!
  • 快穿:征心男配

    快穿:征心男配

    至于死后穿越什么她楚寻安不信,被系统抓去做苦力干攻略什么的....她不信也得信。说好的身体软萌好扑倒,智商下线好拐跑的系统呢!为什么给她的却是一个腹黑吝啬+专坑宿主的系统呢!?喂!老板!我强烈要求换一个系统继续攻略啊亲!本文又名:【炮灰系统:男配,请上榻】【坑爹的系统】本文不小白,欢迎小可爱们进群哦~黑粉就不用了哦~群号:454599433
  • 总裁爱够没

    总裁爱够没

    苏谨在医院里躺了十几年,而从医院里出来的第一件事,就是吸引A市里赫赫有名的花花公子——林莫霆。她成功了,甚至成功的太容易了。第二天起来,林莫霆对苏谨求婚了。——她太明白了,这不过只是一场交易,一场游戏而已。你利用我,我利用你——这就是游戏的规则。可你,为什么要犯规呢?--情节虚构,请勿模仿
  • 绿镯

    绿镯

    简介不好,内容精彩。夏曦因为国家有难嫁给琉璃国的皇帝岑陌轩,他对她百般宠爱,可她只是替身罢了,还有一系列的事情……最后的结局会怎样呢?