登陆注册
7538600000031

第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>

<%

"作者:于天恩

同类推荐
  • 质量管理理论与实务

    质量管理理论与实务

    本书介绍了质量管理理论与实务。全书分为3部分共9章。第一部分介绍质量管理理论,包括1-2章,主要讲述质量管理的基本概念、由来与发展及其理论基础。第二部分讲述质量管理实务,即理论的应用,包括第3-7章,主要讲述质量管理体系的建立、体系文件的编写、体系运行和监控、体系审核和评审、体系认证等实务技术。第三部分是质量管理的综合与个案,主要讲述综合管理体系建立的理论与实务、服务业质量管理体系的建立技巧。本书注重基础知识,讲究实用,是财经管理类专业课程教材,也可以作为从事质量经营管理人员的参考书。
  • 对外贸易概论作业集

    对外贸易概论作业集

    中国社会主义对外贸易是一门全面介绍和分析我国对外贸易发展的课程。中国加入wto后,新的经济形势对外外贸领域的人才提出了新的要求。在新的挑战下,我们不仅要熟悉国际贸易的实务操作,还要对各国对外贸易的发展及其动向有深入了解。特别是在中国社会主义市场经济体制不断建立和完善的过程中,我们必须对我国对外贸易的建立、发展等有一个全面的认识。只有这样,我们才能正确理解我国对外贸易的政策导向,才能在实践工作中少走弯路,从而取得更大的成绩。在本作业集中,对比较重要的知识点采用多种题加以考核,希望能进一步加深同学的理解,并在听课的基础上巩固记忆,以便更好地掌握和运用这些知识。
  • 教你学弹拨乐器

    教你学弹拨乐器

    音乐是有节奏、旋律或和声的人声或乐器音响等配合所构成的一种艺术。其内容与我们的生活情趣、审美情趣、言语行为、人际关系等有一定关联,是我们抒发感情、表现感情、寄托感情的艺术,不论是唱或奏或听,都内涵着及关联着我们千丝万缕的情感因素,因为音乐与我们的脉搏律动和感情起伏等有一定的关联。特别对我们的心理,会起着不能用言语所能表达的影响作用。
  • 阅读中华国粹-青少年应该知道的-篆刻

    阅读中华国粹-青少年应该知道的-篆刻

    篆刻是书法和雕刻相结合的工艺美术。由于印文主要用篆书,工艺流程又是先写后刻,故称“篆刻”。其成品的功用在于“盖印”,故又称“玺印”或“印章”。专门研究这方面的学问,称为“篆刻学”或“印学”。
  • 中华美德:神勇果敢

    中华美德:神勇果敢

    神勇果敢应理解为两方面内容:神勇和果敢。神勇,有无比勇猛,神勇无敌的意思;果敢,形容人处事当机立断,有敢作敢为的意味在里面。神勇果敢,是中华民族传统美德的一种体现。从某种意义上讲,是智慧与勇气并存,胆略与正气常在,勇而并非“莽”,“敢”而未必“闯”。
热门推荐
  • 时光未老,我也还在

    时光未老,我也还在

    她不幸被人踩死,结果竟然穿越了。在异世大陆看她如何一步步走向巅峰,俯视众生
  • 女婿两千岁

    女婿两千岁

    他长生不老,主宰天下,身世能追溯至秦朝时期他经天纬地,他的财富富可敌国,他的势力遍布全球,能征服世间一切的黑暗。那是一段古老的往事,有人为他喋血,千年来,他以各种身份出现在恩人的后代家族中,庇护其长盛不衰。他经历了朝代更迭,现在,他的名字叫王玄,身份是一个上门女婿……
  • 体验派全能巨星

    体验派全能巨星

    伊百川被系统找到,问想不想穿越。他为了科学的研究系统的形成,选择了穿越。迄今为止一共经历了三次,第一次系统开启了未成年模式。第二次直到他躺在棺材里,才出现。第三次他来到了娱乐业高速发展的世界。这一次,故事才刚刚开始……小说不会写?唱歌没感情?演技很尬?怎么办?没关系,系统不来,金手指来帮忙!但是以之前的惯例金手指要不出点问题坑他,还能是金手指?直到某天伊百川一边跑一边哭,嘴里还喊着:“谁也别拦我,我要把金手指格式化!”
  • 未来星际:吃货家族

    未来星际:吃货家族

    意外发生,不幸的被卷入时空乱流中,肉身被毁,却在三千年后醒来。这里的生活对她来说就是天马行空,脑洞大开都想不到。一枚破旧的两指宽玉牌,竟然内有大秘密。拥有穿梭时空,打破空间壁垒的能力。可惜等级太低,她暂时没有办法穿越时空……这里美味虽好,但是价格昂贵,种类不丰富。小气又没钱的她本着发扬五千年博大精深美食的精神,在幸运拥有一块土地之后,宅女兼吃货的言沫沫,通过自己的勤劳不断致富,开店,连锁加盟,最终把美食店开到宇宙其他星球。至于男人……看她喜好啦!不求大富大贵,只求一生一世一双人。“喂,那个美男,不许教坏儿子,别拿豆包不当干粮……”言沫沫愤怒的对着两个同样呆萌的吃货狂喊。这就是一个温馨的小故事。
  • 甜甜千金:我是转校生

    甜甜千金:我是转校生

    意外回国遇上了一大波极品美男,是神秘的财阀少爷的他?有着偶像光环实则是个不良少年的他?温柔稳重出生于音乐世家的他?又或是处处给人温暖的他?随着相处的时间变长,每个人的那份情感会如何变化?能否看清自己内心的想法?这里是人间天堂,贵族少爷们的圣地结局又会是怎样的呢?
  • 天行

    天行

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

    西部猎魔人

    萧文是一个平凡的都市青年,却在无意中来到了异界,并开始了枪林弹雨的西部猎魔人生涯!是与恶魔挽手踏平天堂?还是成为上帝的左手??这是个问题!!!!!!
  • 科技数据库

    科技数据库

    寂静的太阳系突然出现了一股时空风暴,一道光芒在风暴中一闪而过,时空风暴也随之消失。虽然只是一瞬间的事情,但是产生的能量却让这片空间时间线逆转12年。穿梭而来的光芒射入地球,在时空风暴到来前融入了秦飞的身体,发现被命运眷顾的秦飞,欣喜的举起双手,迎接自己注定不平凡的人生......
  • 都市异动

    都市异动

    秦肆!一个本是刚刚大学毕业,已经失业的待业青年!偶然掉到一口井里面,秦肆遇到了一股神秘的力量!秦肆被选中,作为传承者!他继承了空间的力量!他从来都只是一个安于现状,或者说是不思进取的人!所以,他开了个小烧烤摊子!未来的他还是以前的他?
  • 暗夜守望:代号

    暗夜守望:代号

    叶语,因为一次大战而迷失宇宙,而三年后重现人世,原欧米茄军团团长,却放弃了此军团,重新建立了一个新的组织-暗夜守望!