日期:2013-09-30  浏览次数:20980 次

查询语言

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

逻辑和相近运算符:显示如何通过插入逻辑和相近运算符执行更精确的查询。

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

自由文本查询: 说明如何基于短语的意思来表述一个查询,而不是用精确的单词。

矢量空间查询:解释如何获得与单词和短语列表匹配的查询结果。

属性值查询:告诉您如何查询文件的属性值。

查询示例:给出各种查询的示例。

属性名列表:列出和说明可用于查询的属性名。



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

连续的单词作为短语对待,它们在匹配文档中必须以相同的顺序出现。

查询不区分大小写,因此可以用大写或小写键入查询。

可以搜索任何单词,但不包括在例外列表中列出的单词(对于英语,包括 a、an、and、as 和其他一些单词), 它们在查询中将被忽略。

在例外列表中的单词在短语中将作为占位符对待,用来进行相似查询。例如,如果查询“Word for Windows”,结果将给出“Word for Windows”和“Word and Windows” ,因为 for 是一个在例外列表中出现的虚词。

标点符号在搜索时将被忽略,如句号 (.)、冒号 (:)、分号 (;) 和逗号 (,)。

要在查询中使用特殊对待的字符,如 &、|、^、#、@、$、(、),请用引号 (“) 将查询括起来。

要搜索包含引号的单词或短语,请先用引号把整个短语括起来,并用两遍引号括住想用引号括起来的单词。例如,“World-Wide Web or ““Web””” 将搜索 World-Wide Web or “Web”。

可以插入逻辑运算符(AND、 OR 和 NOT)以及相近运算符 (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 也返回一页中两个单词都包含的页。但是,NEAR 和 AND 运算符不同之处在于,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



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

语言

关键字

德语

UND、ODER、NICHT、NAH

法语

ET、OU、SANS、 PRES

西班牙语

Y、O、NO、CERCA

荷兰语

EN、OF、NIET、 NABIJ

瑞典语

OCH、ELLER、INTE、N腞A

意大利语

E、O、NO、VICINO

注意 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”字符 (@)、属性名、