繁体中文
设为首页
加入收藏
当前位置:ASP技术首页 >> 全文检索 >> 用asp怎样编写文档搜索页面(1)

用asp怎样编写文档搜索页面(1)

2004-10-01 08:26:10  作者:  来源:互联网  浏览次数:22  文字大小:【】【】【
简介:<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> <html><head><title>Microsoft Index Server: 查询语言</title> <SCRIPT LANGUAGE="JavaScript"> ...

Microsoft Index Server: 查询语言

查询语言

通过在查询表格中键入单词或短语,然后单击按钮执行查询,就可以在 Web 站点中搜索任意的单词或短语(例如,查询表格示例中的“执行查询”按钮)。本节将介绍以下主题:

搜索产生一个文件列表,这些文件中包含某个单词或短语(不管单词或短语出现在文件中的任何地方)。下面列表给出表述查询的规则:

  • 连续的单词作为短语对待,它们在匹配文档中必须以相同的顺序出现。
  • 查询不区分大小写,因此可以用大写或小写键入查询。
  • 可以搜索任何单词,但不包括在例外列表中列出的单词(对于英语,包括 aanandas 和其他一些单词), 它们在查询中将被忽略。
  • 在例外列表中的单词在短语中将作为占位符对待,用来进行相似查询。例如,如果查询“Word for Windows”,结果将给出“Word for Windows”和“Word and Windows” ,因为 for 是一个在例外列表中出现的虚词。
  • 标点符号在搜索时将被忽略,如句号 (.)、冒号 (:)、分号 (;) 和逗号 (,)。
  • 要在查询中使用特殊对待的字符,如 &、|、^、#、@、$、(、),请用引号 (“) 将查询括起来。
  • 要搜索包含引号的单词或短语,请先用引号把整个短语括起来,并用两遍引号括住想用引号括起来的单词。例如,“World-Wide Web or ““Web””” 将搜索 World-Wide Web or “Web”
  • 可以插入逻辑运算符ANDORNOT)以及相近运算符 (NEAR) 来指定附加的搜索信息。
  • 通配字符 (*) 可以用所给前缀匹配单词。查询 esc* 可以匹配词条 “ESC”、“escape” 等等。
  • 自由文本查询可以不按查询语法指定查询。
  • 可以指定矢量空间查询
  • 可以执行 ActiveX" (OLE) 和文件属性的属性值查询

逻辑和相近运算符

逻辑和相近运算符可以创建更精确的查询。

搜索目标 示例 结果
同一页中同时包含两个词条 access and basic


access & basic

包含单词“access”和“basic”的页。
同一页中包含两个词条之一 cgi or isapi


cgi | isapi

包含单词“cgi”或“isapi”的页。
包含第一个词条,但不包含第二个词条 access and not basic


access & ! basic

包含单词“access”,但不包含单词“basic”的页。
不匹配某个属性值的页 not @size = 100


! @size = 100

大小不是 100 字节的页。
同一页中同时包含两个词条,且互相靠近 excel near project


excel ~ project

包含互相靠近的单词“excel”和“project”的页。

提示:

  • 可以在查询表达式中加入括弧,表达式中带括弧的部分比查询的其他部分先执行。
  • 使用双引号 (“) 可以指明逻辑或 NEAR 运算符关键字在查询中需要忽略。例如,“Abbott and Costello”将匹配包含该短语的页,而不是匹配符合该逻辑表达式的页。作为运算符,单词 and 在英语中是一个虚词。
  • NEAR 运算符与 AND 运算符相似, NEAR 也返回一页中两个单词都包含的页。但是,NEARAND 运算符不同之处在于,NEAR 要看单词是否靠近。也就是说,包含搜索单词较近的页的等级将大于或等于单词相隔较远的页的等级。如果搜索的单词相隔大于 50 个单词,该页将定为等级零
  • 在内容查询中,NOT 运算符只能用在 AND 运算符之后,它仅用来排除匹配前面内容约束的页。对于属性值查询,NOT 运算符可以不与 AND 运算符一起使用。
  • AND 运算符的优先级高于 OR。例如,下面的前三个查询相等,但第四个不同:

    a AND b OR c

    c OR a AND b

    c OR (a AND b)

    (c OR a) AND b

注意 在所有语言中,符号(&、|、!、 ~)与英语关键字 ANDORNOTNEAR 的作用相同(Index Server 支持)。如果浏览器被设置为下列六种语言,本地化的关键字也可以使用。

语言 关键字
德语 UNDODERNICHTNAH
法语 ETOUSANSPRES
西班牙语 YONOCERCA
荷兰语 ENOFNIETNABIJ
瑞典语 OCHELLERINTENÄRA
意大利语EONOVICINO

注意 NEAR 运算符只能用于单词或短语。

通配符

通配符可以帮助您查找包含与所给单词相似的单词的页。

搜索目标 示例 结果
具有相同前缀的单词 comput* 包含前缀为“comput”的单词的页,例如“computer”、“computing”等等
基于同一个本词的单词 fly** 包含基于相同本词“fly”的单词的页,例如“flying”、“flown”、“flew”等等

自由文本查询

在自由文本查询中,查询引擎查找与单词或短语最佳匹配的页。这种查询匹配意思,而不是精确的单词。在自由文本查询中,逻辑、相近和通配运算符都将被忽略。自由文本查询以 $contents 为前缀。

搜索目标 示例 结果
匹配自由文本的文件 $contents how do I print in Microsoft Excel? 提到 printing 和 Microsoft Excel 的页。

矢量空间查询

查询引擎支持矢量空间查询。矢量查询返回匹配单词和短语列表的页,每页的排列指明了页面与查询匹配的程度。

搜索目标 示例 结果
包含指定单词的页 light, bulb 包含与搜索单词最匹配的单词的文件
包含加权的前缀、单词和短语的页 invent*, light[50], bulb[10],

"light bulb"[400]

包含以“invent,”为前缀的单词、单词“light”、 “bulb”和短语“light bulb”的文件(词条被加权)


  • 在矢量查询中的组件以逗号隔开。
  • 矢量查询中的组件可以用 [weight] 语法加权。
  • 矢量查询返回的页不必匹配查询的所有词条。
  • 当结果按等级排序时,矢量查询最好。

属性值查询

用属性值查询,可以查找含有与所给标准相匹配的属性值的文件。可以用来查询的属性包括文件的基本信息(如文件名、文件大小)和 ActiveX 属性(包含在文档摘要中),ActiveX 属性由 ActiveX 应用程序创建并存储在文件中。

下面是两种类型的属性查询:

  • 关系属性查询包括“at”字符 (@)、属性名关系运算符属性值。例如,要查找大小超过一兆字节的文件,可以执行查询 @size > 1000000。
  • 正则表达式查询包括号码符号 (#)、属性名和属性值的正则表达式。例如,要查找所有视频 (.avi) 文件,可以执行查询 #filename *.avi。正则表达式不会匹配特定的属性内容 (#contents) 和全部 (#all)。 在查询中不能检索的属性不能用于 # 查询,包括未存储在属性缓存中的 HTML META 属性。

本节包含以下主题:

属性名

属性名以“at”(@) 或号码符号 (#) 开头,@ 用于关系查询,# 用于正则表达式查询。

如果未指定属性名,将假定为 @contents

所有文件中都可用的属性包括:

属性名 说明
All 匹配单词、短语和任何属性
Contents 文件中单词和短语
Filename 文件的名称
Size 文件大小
Write 文件的最后一次修改时间

ActiveX 属性值也可以用于查询,绝大多数由 ActiveX 应用程序创建的 Web 站点文件可以用下列属性查询:

属性名 说明
DocTitle 文档的标题

责任编辑:admin
相关文章