帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统
栏 目:
 
您的位置:首页 > 技术文档 > ASP编程
用asp怎样编写文档搜索页面
作者:佚名 发布时间:2005-04-02 来源:不详
 

<html><head><title>Microsoft Index Server: 查询语言</title>


<SCRIPT LANGUAGE="JavaScript">
TempString = navigator.appVersion
if (navigator.appName == "Microsoft Internet Explorer"){
// Check to see if browser is Microsoft
if (TempString.indexOf ("4.") >= 0){
// Check to see if it is IE 4
document.writeln('<link rel="stylesheet" type="text/css" href="/iishelp/common/coua.css">');
}
else {
document.writeln('<link rel="stylesheet" type="text/css" href="/iishelp/common/cocss.css">');
}
}
else if (navigator.appName == "Netscape") {
// Check to see if browser is Netscape
document.writeln('<link rel="stylesheet" type="text/css" href="/iishelp/common/coua.css">');
}
else
document.writeln('<link rel="stylesheet" type="text/css" href="/iishelp/common/cocss.css">');
</script>

<META NAME="DESCRIPTION" CONTENT="Tells how to refine searches by using complex queries"></head>

<body bgcolor="#FFFFFF" text="#000000">
<font face="宋体">

<h1><a name="QueryLanguage">查询语言</a></h1>

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

<ul>
<li><strong><a href="#Operators">逻辑和相近运算符</a>:</strong>显示如何通过插入逻辑和相近运算符执行更精确的查询。</li>
<li><strong><a href="#Wildcards">通配符</a>:</strong>帮助您查找包含与所给单词相似的单词的页。</li>
<li><strong><a href="#FreeTextQueries">自由文本查询</a>:</strong> 说明如何基于短语的意思来表述一个查询,而不是用精确的单词。</li>
<li><strong><a href="#VectorQueries">矢量空间查询</a>:</strong>解释如何获得与单词和短语列表匹配的查询结果。</li>
<li><strong><a href="#PropertyValueQueries">属性值查询</a>:</strong>告诉您如何查询文件的属性值。</li>
<li><strong><a href="#Examples">查询示例</a>:</strong>给出各种查询的示例。</li>
<li><strong><a href="#PropertyNamesList">属性名列表</a>:</strong>列出和说明可用于查询的属性名。</li>
</ul>

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

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

<h1><a name="Operators">逻辑和相近运算符</a></h1>

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

<table border="1" cellpadding="4" cellspacing="1" width="100%">
<tr>
<th align="Left" valign="bottom" bgcolor="#C0C0C0" width=33%>搜索目标</th>
<th align="Left" valign="bottom" bgcolor="#C0C0C0" width=33%>示例</th>
<th align="Left" valign="bottom" bgcolor="#C0C0C0" width=33%>结果</th>
</tr>
<tr>
<td valign="top">同一页中同时包含两个词条</td>
<td valign="top"><code>access and basic</code><br>
<strong>&#151;</strong>或<strong>&#151;</strong><br>
<code>access &amp; basic</code></td>
<td valign="top">包含单词&#147;access&#148;和&#147;basic&#148;的页。</td>
</tr>
<tr>
<td valign="top">同一页中包含两个词条之一</td>
<td valign="top"><code>cgi or isapi</code><br>
<strong>&#151;</strong>或<strong>&#151;</strong><br>
<code>cgi | isapi</code></td>
<td valign="top">包含单词&#147;cgi&#148;或&#147;isapi&#148;的页。</td>
</tr>
<tr>
<td valign="top">包含第一个词条,但不包含第二个词条</td>
<td valign="top"><code>access and not basic</code><br>
<strong>&#151;</strong>或<strong>&#151;</strong><br>
<code>access &amp; ! basic</code></td>
<td valign="top">包含单词&#147;access&#148;,但不包含单词&#147;basic&#148;的页。</td>
</tr>
<tr>
<td valign="top">不匹配某个属性值的页</td>
<td valign="top"><code>not @size = 100</code><br>
<strong>&#151;</strong>或<strong>&#151;</strong><br>
<code>! @size = 100</code></td>
<td valign="top">大小不是 100 字节的页。</td>
</tr>
<tr>
<td valign="top">同一页中同时包含两个词条,且互相靠近</td>
<td valign="top"><code>excel near project</code><br>
<strong>&#151;</strong>或<strong>&#151;</strong><br>
<code>excel ~ project</code></td>
<td valign="top">包含互相靠近的单词&#147;excel&#148;和&#147;project&#148;的页。</td>
</tr>
</table>

<p>提示:</p>

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

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

<table border="1" cellpadding="4" cellspacing="1" width="100%">
<tr>
<th align="Left" valign="bottom" bgcolor="#C0C0C0" width="40%">语言</th>
<th align="Left" valign="bottom" bgcolor="#C0C0C0" width="60%">关键字</th>
</tr>
<tr>
<td valign="top">德语</td>
<td valign="top"><strong>UND</strong>、<strong>ODER</strong>、<strong>NICHT</strong>、<strong>NAH</strong></td>
</tr>
<tr>
<td valign="top">法语</td>
<td valign="top"><strong>ET</strong>、<strong>OU</strong>、<strong>SANS</strong>、 <strong>PRES</strong></td>
</tr>
<tr>
<td valign="top">西班牙语</td>
<td valign="top"><strong>Y</strong>、<strong>O</strong>、<strong>NO</strong>、<strong>CERCA</strong></td>
</tr>
<tr>
<td valign="top">荷兰语</td>
<td valign="top"><strong>EN</strong>、<strong>OF</strong>、<strong>NIET</strong>、 <strong>NABIJ</strong></td>
</tr>
<tr>
<td valign="top">瑞典语</td>
<td valign="top"><strong>OCH</strong>、<strong>ELLER</strong>、<strong>INTE</strong>、<strong>N&Auml;RA</strong></td>
</tr>
<tr>
<td>意大利语</td><td><strong>E</strong>、<strong>O</strong>、<strong>NO</strong>、<strong>VICINO</strong></td>
</tr>
</table>
<p><strong>注意</strong>&nbsp;&nbsp;&nbsp;NEAR 运算符只能用于单词或短语。</p>

<h1><a name="Wildcards">通配符</a></h1>

<p><a name="Wildcards">通配符可以帮助您查找包含与所给单词相似的单词的页。</a></p>

<table border="1" cellpadding="4" cellspacing="1" width="100%">
<tr>
<th align="Left" valign="bottom" width=33% bgcolor="#C0C0C0"><a name="Wildcards">搜索目标</a></th>
<th align="Left" valign="bottom" width=33% bgcolor="#C0C0C0"><a name="Wildcards">示例</a></th>
<th align="Left" valign="bottom" width=33% bgcolor="#C0C0C0"><a name="Wildcards">结果</a></th></tr>
<tr>
<td valign="top"><a name="Wildcards">具有相同前缀的单词</a></td>
<td valign="top"><a name="Wildcards"><code>comput*</code></a></td>
<td valign="top"><a name="Wildcards">包含前缀为&#147;comput&#148;的单词的页,例如&#147;computer&#148;、&#147;computing&#148;等等</a>。</td>
</tr>
<tr>
<td valign="top"><a name="Wildcards">基于同一个本词的单词</a></td>
<td valign="top"><a name="Wildcards"><code>fly**</code></a></td>
<td valign="top"><a name="Wildcards">包含基于相同本词&#147;fly&#148;的单词的页,例如&#147;flying&#148;、&#147;flown&#148;、&#147;flew&#148;等等</a>。</td>
</tr>
</table>

<h1><a name="FreeTextQueries">自由文本查询</a></h1>

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

<table border="1" cellpadding="4" cellspacing="1" width="100%">
<tr><th align="Left" valign="bottom" width=33% bgcolor="#C0C0C0"><a name="FreeTextQueries">搜索目标</a></th>
<th align="Left" valign="bottom" width=33% bgcolor="#C0C0C0"><a name="FreeTextQueries">示例</a></th>
<th align="Left" valign="bottom" width=33% bgcolor="#C0C0C0"><a name="FreeTextQueries">结果</a></th>
</tr>
<tr>
<td valign="top"><a name="FreeTextQueries">匹配自由文本的文件</a></td>
<td valign="top"><a name="FreeTextQueries"><code>$contents how do I print in Microsoft Excel? </code></a></td>
<td valign="top"><a name="FreeTextQueries">提到 printing 和 Microsoft Excel 的页。</a></td>
</tr>
</table>

<h1><a name="VectorQueries">矢量空间查询</a></h1>

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


<table border="1" cellpadding="4" cellspacing="1" width="100%">
<tr>
<th align="Left" valign="bottom" width=33% bgcolor="#C0C0C0">搜索目标</th>
<th align="Left" valign="bottom" width=33% bgcolor="#C0C0C0">示例</th>
<th align="Left" valign="bottom" width=33% bgcolor="#C0C0C0">结果</th></tr>
<tr>
<td valign="top">包含指定单词的页</td>
<td valign="top"><code>light, bulb</code></td>
<td valign="top">包含与搜索单词最匹配的单词的文件</td>
</tr>
<tr>
<td valign="top">包含加权的前缀、单词和短语的页</td>
<td valign="top"><code>invent*, light[50], bulb[10],
&quot;light bulb&quot;[400]</code></td>
<td valign="top">包含以&#147;invent,&#148;为前缀的单词、单词&#147;light&#148;、 &#147;bulb&#148;和短语&#147;light bulb&#148;的文件(词条被加权)</td>
</tr>
</table>

<p>&nbsp;<!-- </p> --><br>

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

<h1><a name="PropertyValueQueries">属性值查询</a></h1>

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

<p>下面是两种类型的属性查询:</p>

<ul>
<li><a name="PropertyValueQueries"><strong>关系属性查询</strong>包括&#147;at&#148;字符 (@)、</a><a href="#PropertyNames">属性名</a>、<a href="#RelationalOperators">关系运算符</a>和<a href="#PropertyValues">属性值</a>。例如,要查找大小超过一兆字节的文件,可以执行查询 @size &gt; 1000000。</li>
<li><strong>正则表达式查询</strong>包括号码符号 (#)、属性名和属性值的<a href="#RegularExpressions">正则表达式</a>。例如,要查找所有视频 (.avi) 文件,可以执行查询 #filename *.avi。正则表达式不会匹配特定的属性内容 (#contents) 和全部 (#all)。 在查询中不能检索的属性不能用于 # 查询,包括未存储在属性缓存中的 HTML META 属性。</li>
</ul>

<p>本节包含以下主题:</p>

<ul>
<li><a href="#PropertyNames">属性名</a></li>
<li><a href="#RelationalOperators">关系运算符</a></li>
<li><a href="#PropertyValues">属性值</a></li>
</ul>

<h2><a name="PropertyNames">属性名</a></h2>

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

<p>如果未指定属性名,将假定为 <em>@contents</em>。</p>

<p>所有文件中都可用的属性包括:</p>

<table border="1" cellpadding="4" cellspacing="1" width="100%">
<tr>
<th align="Left" valign="bottom" bgcolor="#C0C0C0" width="40%">属性名</th>
<th align="Left" valign="bottom" bgcolor="#C0C0C0" width="60%">说明</th></tr>
<tr>
<td valign="top">All</td>
<td valign="top">匹配单词、短语和任何属性</td>
</tr>
<tr>
<td valign="top">Contents</td>
<td valign="top">文件中单词和短语</td>
</tr>
<tr>
<td valign="top">Filename</td>
<td valign="top">文件的名称</td>
</tr>
<tr>
<td valign="top">Size</td>
<td valign="top">文件大小</td>
</tr>
<tr>
<td valign="top">Write</td>
<td valign="top">文件的最后一次修改时间</td>
</tr>
</table>

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

<table border="1" cellpadding="4" cellspacing="1" width="100%">
<tr>
<th align="Left" valign="bottom" bgcolor="#C0C0C0" width="40%">属性名</th>
<th align="Left" valign="bottom" bgcolor="#C0C0C0" width="60%">说明</th></tr>
<tr>
<td valign="top">DocTitle</td>
<td valign="top">文档的标题</td>
</tr>
<tr>
<td valign="top">DocSubject</td>
<td valign="top">文档的主题</td>
</tr>
<tr>
<td valign="top">DocAuthor</td>
<td valign="top">文档的作者</td>
</tr>
<tr>
<td valign="top">DocKeywords</td>
<td valign="top">文档中的关键字</td>
</tr>
<tr>
<td valign="top">DocComments</td>
<td valign="top">文档中的注释</td>
</tr>
</table>

<p>属性名的完整列表,请参阅本页后面的<a href="#PropertyNamesList">属性名列表</a> 。</p>

<h2><a name="RelationalOperators">关系运算符</a></h2>

<p>关系运算符用于关系属性查询中。</p>

<table border="1" cellpadding="4" cellspacing="1" width="100%">
<tr>
<th align="Left" valign="bottom" bgcolor="#C0C0C0" width=33%>搜索目标</th>
<th align="Left" valign="bottom" bgcolor="#C0C0C0" width=33%>示例</th>
<th align="Left" valign="bottom" bgcolor="#C0C0C0" width=33%>结果</th></tr>
<tr>
<td valign="top">与固定值相关的属性值</td>
<td valign="top">@size &lt; 100 <br>
@size &lt;= 100 <br>
@size = 100 <br>
@size != 100 <br>
@size &gt;= 100 <br>
@size &gt; 100 </code></td>
<td valign="top">大小与查询匹配的文件</td>
</tr>
<tr>
<td valign="top">拥有全部比特集的属性值</td>
<td valign="top"><code>@attrib ^a 0x820</code></td>
<td valign="top">拥有存档属性的压缩文件</td>
</tr>
<tr>
<td valign="top">拥有一些比特集的属性值</td>
<td valign="top"><code>@attrib ^s 0x20</code></td>
<td valign="top">拥有存档属性的文件</td>
</tr>
</table>

<h2><a name="PropertyValues">属性值</a></h2>

<table border="1" cellpadding="4" cellspacing="1" width="100%">
<tr>
<th align="Left" valign="bottom" bgcolor="#C0C0C0" width="130">搜索目标</th>
<th align="Left" valign="bottom" bgcolor="#C0C0C0" width="200">示例</th>
<th align="Left" valign="bottom" bgcolor="#C0C0C0" width="170">结果</th></tr>
<tr>
<td valign="top">指定值</td>
<td valign="top"><code>@DocAuthor = Bill Barnes </code></td>
<td valign="top">由&#147;Bill Barnes&#148;创作的文件</td>
</tr>
<tr>
<td valign="top">以前缀开始的值</td>
<td valign="top"><code>#DocAuthor George* </code></td>
<td valign="top">作者名字是以&#147;George&#148;打头的文件</td>
</tr>
<tr>
<td valign="top">带扩展名集中任何一种扩展名的文件</td>
<td valign="top"><code>#filename *.|(exe|,dll|,sys|) </code></td>
<td valign="top">带 .exe、.dll 或 .sys 扩展名的文件</td>
</tr>
<tr>
<td valign="top">在某个日期之后修改过的文件</td>
<td valign="top"><code>@write &gt; 96/2/14 10:00:00</code></td>
<td valign="top">在 1996 年 2 月 14 日 10:00 GMT 之后修改过的文件
</td>
</tr>
<tr>
<td valign="top">在相对日期之后修改过的文件</td>
<td valign="top"><code>@write &gt; -1d2h</code></td>
<td valign="top">在最近 26 小时之内修改过的文件</td>
</tr>
<tr>
<td valign="top">匹配一个矢量的矢量</td>
<td valign="top"><code>@vectorprop = { 10, 15, 20 }</code></td>
<td valign="top">矢量值为 { 10, 15, 20 } 的 ActiveX 文档</td>
</tr>
<tr>
<td valign="top">每一个值都与标准匹配的矢量</td>
<td valign="top"><code>@vectorprop &gt;^a 15</code></td>
<td valign="top">矢量值的每一个值都大于 15 的 ActiveX 文档</td>
</tr>
<tr>
<td valign="top">至少有一个值与标准匹配的矢量</td>
<td valign="top"><code>@vectorprop =^s 15</code></td>
<td valign="top">矢量值中至少有一个值大于 15 的 ActiveX 文档</td>
</tr>
</table>

<p>&nbsp;</p>

<ul>
<li>当使用正则表达式查询时,请确保在属性值之前带上 (#) 字符,否则请带上“at”(@) 字符。等于 (=) 关系运算符假定为用于正则表达式查询。</li>
<li>文件名 (#filename) 是唯一支持在文字左边出现通配符的正则表达式的属性。</li>
<li>日期和时间值为 <em>yyyy/mm/dd hh:mm:ss</em> 或 <EM>yyyy-mm-dd hh:mm:ss</EM> 格式。年的前两位和整个时间都可以忽略。如果忽略年的前两位,那么小于等于 29??的数字将解释为二十一世纪,大于或等于 30 的数字将解释为二十世纪。所有日期和时间都是格林尼治时间 (GMT)。</li>
<li>相对与当前时间的日期和时间可以用减号 (-) 跟上零或整数单位和时间单位对来表示。时间单位解释为:(y) 年、(m) 月、(w) 周、(d) 天、(h) 小时、(n) 分钟和 (s) 秒。作为可选项,在时间表达式后还可以指定三位毫秒值。例如,1997/12/8 10:10:03:452</li>
<li>货币值为 <em>x.y</em> 格式。在此,<em>x</em> 是金额的整数值,<em>y</em> 是小数值。单位没有假定值。</li>
<li>逻辑值为:(t) 或 (true) 对应与 <strong>TRUE</strong>, (f) 或 (false) 对应与 <strong>FALSE</strong>。</li>
<li>矢量 (VT_VECTOR) 表示为:左大括号 ({) 开始、紧跟逗号分隔的值列表,以右大括号 (}) 结束。</li>
<li>单值表达式与矢量相比较表示为:<a href="#RelationalOperators">关系运算符</a>,然后是 (^a)(对应于<em>全部</em>)或 (^s)(对应于<em>一些</em>)。
<li>数字值可以是十进制或十六进制(前面加 0x)。</li>
<li><em>contents</em> 属性值不支持关系运算符,如果指定关系运算符,将找不到任何结果。例如,@contents Microsoft 将查找包含 Microsoft 的文档,但 @contents<strong>=</strong>Microsoft 将什么也找不到。</li>
</ul>

<h3><a name="RegularExpressions">正则表达式</a></h3>

<p>属性查询中的正则表达式定义如下:</p>
<ul>
<li>除了星号 (*)、逗号 (.)、问号 (?) 和竖线 (|) 之外的任何字符都默认为匹配自己。</li>
<li>正则表达式可以用引号 (&#147;) 括起来,如果包含空格 ( ) 或右括号 ()),则必须用引号括起来。</li>
<li>字符 *、.、和 ? 的作用与它们在 Windows 中的作用一样,星号匹配任意字符,句号匹配 (.) 或字符串结尾,问号匹配任何单个字符。</li>
<li>字符 | 是转意字符,在 | 之后的字符具有特殊含义:</li>
<p>( 开始一个组,后面必须有 ) 相对。<!--</p>--><br>
<p>) 结束一个组,前面必须有 ( 相对。<!--</p>--><br>
<p>[ 开始一个字符类,后面必须有 ](不转意)相对。<!--</p>--><br>
<p>{ 开始计数的匹配,后面必须有 } 相对。<!--</p>--><br>
<p>} 结束计数的匹配,前面必须有 { 相对。<!--</p>--><br>
<p>, 分隔 <strong>OR</strong> 子句。<!--</p>--><br>
<p>* 匹配前面表达式的零次或多次出现。<!--</p>--><br>
<p>? 匹配前面表达式的零次或一次出现。<!--</p>--><br>
<p>+ 匹配前面表达式的一次或多次出现。<!--</p>--><br>
<p>其他字符,包括 |,匹配自己。<!--</p>--><br>
<li>方括号 ([]) 之间的下列字符具有特殊含义:</li>
<p>^ 除了下面的类,匹配任意。它必须是第一个字符。<!--</p>--><br>
<p>] 匹配 ]。只能在 ^ 之后,否则起结束类的作用。<!--</p>--><br>
<p>- 范围运算符。前面和后面可以是普通字符。<!--</p>--><br>
<p>其他匹配自己(范围的开始或结束)。<!--</p>--><br>
<li>大括号 ({}) 之间适用下列语法:</li>
<p>|{m|} 精确匹配前面表达式的 <em>m</em> 次出现。(0 &lt; m &lt; 256)。 <!--</p>--><br>
<p>|{m,|} 匹配前面表达式的至少 <em>m</em> 次出现。(1 &lt; m &lt; 256)。 <!--</p>--><br>
<p>|{m,n|} 匹配前面表达式从 <em>m</em> 到 <em>n</em> 次的出现,包含m 和 n。(0 &lt; m &lt; 256, 0 &lt; n &lt;
256)。<!--</p>--><br>
<li>要匹配 *、.、和 ?,请用括号括起来(例如,|[*]sample 将匹配 &#147;*sample&#148;)。</li>
</ul>

<h1><a name="Examples">查询示例</a></h1>

<table border="1" cellpadding="4" cellspacing="1" width="100%">
<tr>
<th align="Left" valign="bottom" bgcolor="#C0C0C0" width="40%">示例</th>
<th align="Left" valign="bottom" bgcolor="#C0C0C0" width="60%">结果</th></tr>
<tr>
<td valign="top"><code>@size &gt; 1000000</code></td>
<td valign="top">大于一兆字节的页</td>
</tr>
<tr>
<td valign="top"><code>@write &gt; 95/12/23</code></td>
<td valign="top">该日期后修改过的页</td>
</tr>
<tr>
<td valign="top"><code>Apple tree</code></td>
<td valign="top">包含短语&#147;apple tree&#148;的页</td>
</tr>
<tr>
<td valign="top"><code>&quot;apple tree&quot;</code></td>
<td valign="top">同上</td>
</tr>
<tr>
<td valign="top"><code>@contents apple tree</code></td>
<td valign="top">同上</td>
</tr>
<tr>
<td valign="top"><code>Microsoft and @size &gt; 1000000</code></td>
<td valign="top">包含单词&#147;Microsoft&#148,并且大于大于一兆字节的页</td>
</tr>
<tr>
<td valign="top"><code>&quot;microsoft and @size &gt; 1000000&quot;</code></td>
<td valign="top">包含指定短语的页(与上面不同)</td>
</tr>
<tr>
<td valign="top"><code>#filename *.avi</code></td>
<td valign="top">视频文件(因为查询包含正则表达式,所以使用 # 前缀)</td>
</tr>
<tr>
<td valign="top"><code>@attrib ^s 32</code></td>
<td valign="top">带存档属性的页</td>
</tr>
<tr>
<td valign="top"><code>@docauthor = John Smith</code></td>
<td valign="top">由所给作者创作的页</td>
</tr>
<tr>
<td valign="top"><code>$contents why is the sky blue?</code></td>
<td valign="top">匹配查询的页</td>
</tr>
<tr>
<td valign="top"><code>@size &lt; 100 & #filename *.gif</code></td>
<td valign="top">大于 100 字节的 GIF 文件</td>
</tr>
</table>

<h1><a name="PropertyNamesList">属性名列表</a></h1>

<p>这些属性在查询时都可用,附加的属性要看 Web 服务器的配置。</p>

<table border="1" cellpadding="4" cellspacing="1" width="100%">
<tr>
<th align="Left" valign="bottom" bgcolor="#C0C0C0" width="15%">友好名称</th>
<th align="Left" valign="bottom" bgcolor="#C0C0C0" width="20%">数据类型</th>
<th align="Left" valign="bottom" bgcolor="#C0C0C0" width="65%">属性</th></tr>
<tr>
<td valign="top">A_HRef</td>
<td valign="top">DBTYPE_WSTR |
DBTYPE_BYREF</td>
<td valign="top" width=65%>HTML HREF 的文字,该属性名由 Microsoft? Site Server 创建,与 Index Server 属性名 HtmlHRef 相对。可以查询,但不能检索。</td>
</tr>
<tr>
<td valign="top">Access</td>
<td valign="top">VT_FILETIME</td>
<td valign="top" width=65%>文件的最后访问时间。</td>
</tr>
<tr>
<td valign="top">All</td><td valign="top">(不适用)</td>
<td valign="top" width=65%>搜索字符串的每一个属性。可以查询,但不能检索。</td>
</tr>
<tr>
<td valign="top">AllocSize</td><td valign="top">DBTYPE_I8</td>
<td valign="top" width=65%>为文件分配的磁盘大小。</td>
</tr>
<tr>
<td valign="top">Attrib</td><td valign="top">DBTYPE_UI4</td>
<td valign="top" width=65%>文件属性,在 Win32 SDK 文档中说明。</td>
</tr>
<tr>
<td valign="top">ClassId</td><td valign="top">DBTYPE_GUID</td>
<td valign="top" width=65%>对象的类标识,例如 WordPerfect、Word 等等。</td>
</tr>
<tr>
<td valign="top"><a name="Characterization">Characterization</a></td><td valign="top">DBTYPE_WSTR |
DBTYPE_BYREF</td>
<td valign="top" width=65%>文档的描述或摘要,由 Index Server 使用。</td>
</tr>
<tr>
<td valign="top">Contents</td><td valign="top">(不适用)</td>
<td valign="top" width=65%>文件的主要内容。可以查询,但不能检索。</td>
</tr>
<tr>
<td valign="top">Create</td><td valign="top">VT_FILETIME</td>
<td valign="top" width=65%>文件的创建时间。</td>
</tr>
<tr>
<td valign="top">Directory</td><td valign="top">DBTYPE_WSTR |
DBTYPE_BYREF</td>
<td valign="top" width=65%>文件的物理路径,不包含文件名。</td>
</tr>
<tr>
<td valign="top">DocAppName</td><td valign="top">DBTYPE_WSTR |
DBTYPE_BYREF</td>
<td valign="top" width=65%>创建文件的应用程序的名称。</td>
</tr>
<tr>
<td valign="top">DocAuthor</td><td valign="top">DBTYPE_WSTR |
DBTYPE_BYREF</td>
<td valign="top" width=65%>文档的作者。</td>
</tr>
<tr>
<td>DocByteCount</td><td>DBTYPE_14</td><td>文档的字节数。</td>
</tr>
<tr>
<td>DocCategory</td><td>DBTYPE_STR |
DBTYPE_BYREF</td><td>文档的类别,如备忘录、计划或便笺。</td>
</tr>
<tr>
<td valign="top">DocCharCount</td><td valign="top">DBTYPE_I4</td>
<td valign="top" width=65%>文档的字符数。</td>
</tr>
<tr>
<td valign="top">DocComments</td><td valign="top">DBTYPE_WSTR |
DBTYPE_BYREF</td>
<td valign="top" width=65%>关于文档的注释。</td>
</tr>
<tr>
<td>DocCompany</td><td>DBTYPE_STR |
DBTYPE_BYREF</td><td>文档写作的公司名称。</td>
</tr>
<tr>
<td valign="top">DocCreatedTm</td><td valign="top">VT_FILETIME</td>
<td valign="top" width=65%>文档创建的时间。</td>
</tr>
<tr>
<td valign="top">DocEditTime</td><td valign="top">VT_FILETIME</td>
<td valign="top" width=65%>编辑文档所用的全部时间。</td>
</tr>
<tr>
<td>DocHiddenCount</td><td>DBTYPE_14</td><td>Microsoft&#174; PowerPoint 文档中的隐藏幻灯片数。</td>
</tr>
<tr>
<td valign="top">DocKeywords</td><td valign="top">DBTYPE_WSTR |
DBTYPE_BYREF</td>
<td valign="top" width=65%>文档关键字。</td>
</tr>
<tr>
<td valign="top">DocLastAuthor</td><td valign="top">DBTYPE_WSTR |
DBTYPE_BYREF</td>
<td valign="top" width=65%>最近编辑文档的用户。</td>
</tr>
<tr>
<td valign="top">DocLastPrinted</td><td valign="top">VT_FILETIME</td>
<td valign="top" width=65%>文档的最近一次打印时间。</td>
</tr>
<tr>
<td valign="top">DocLastSavedTm</td><td valign="top">VT_FILETIME</td>
<td valign="top" width=65%>文档的最近一次保存时间。</td>
</tr>
<tr>

<td>DocLineCount</td><td>DBTYPE_14</td><td>文档包含的行数。</td>
</tr>
<tr>
<td>DocManager</td><td>DBTYPE_STR |
DBTYPE_BYREF</td><td>文档作者的经理的名称。</td>
</tr>
<tr>
<td>DocNoteCount</td><td>DBTYPE_14</td><td>PowerPoint 文档中带注释的页数。</td>
</tr>
<tr>
<td valign="top">DocPageCount</td><td valign="top">DBTYPE_I4</td>
<td valign="top" width=65%>文档的页数。</td>
</tr>
<tr>
<td>DocParaCount</td><td>DBTYPE_14</td><td>文档的图形数量。</td>
</tr>
<tr>
<td>DocPartTitles</td><td>DBTYPE_STR | DBTYPE_VECTOR</td><td>文档部分的名称。例如,在 Excel 中,部分标题是电子工作表的名称;在 PowerPoint 中是幻灯片的标题;在 Word for Windows 中是主文档中各个分文档的名称。</td>
</tr>
<tr>
<td>DocPresentationTarget</td><td>DBTYPE_STR|DBTYPE_BYREF</td><td>PowerPoint 演示文稿的目标格式(35mm、打印机、视频等等)。</td>
</tr>
<tr>
<td valign="top">DocRevNumber</td><td valign="top">DBTYPE_WSTR |
DBTYPE_BYREF</td>
<td valign="top" width=65%>文档的当前版本。</td>
</tr>
<tr>
<td>DocSlideCount</td><td>DBTYPE_14</td><td>PowerPoint 文档的幻灯片数。</td>
</tr>
<tr>
<td valign="top">DocSubject</td><td valign="top">DBTYPE_WSTR |
DBTYPE_BYREF</td>
<td valign="top" width=65%>文档的主题。</td>
</tr>
<tr>
<td valign="top">DocTemplate</td><td valign="top">DBTYPE_WSTR |
DBTYPE_BYREF</td>
<td valign="top" width=65%>文档的模板。</td>
</tr>
<tr>
<td valign="top"><a name="DocTitle">DocTitle</a></td><td valign="top">DBTYPE_WSTR |
DBTYPE_BYREF</td>
<td valign="top" width=65%>文档的标题</td>
</tr>
<tr>
<td valign="top">DocWordCount</td><td valign="top">DBTYPE_I4</td>
<td valign="top" width=65%>文档的字数。</td>
</tr>
<tr>
<td valign="top">FileIndex</td><td valign="top">DBTYPE_I8</td>
<td valign="top" width=65%>文件的唯一标识。</td>
</tr>
<tr>
<td valign="top"><a name="FileName">FileName</a></td><td valign="top">DBTYPE_WSTR |
DBTYPE_BYREF</td>
<td valign="top" width=65%>文件名。</td>
</tr>
<tr>
<td valign="top">HitCount</td><td valign="top">DBTYPE_I4</td>
<td valign="top" width=65%>文件中的命中次数(单词匹配查询)。</td>
</tr>
<tr>
<td valign="top">HtmlHRef</td><td valign="top">DBTYPE_WSTR |
DBTYPE_BYREF</td>
<td valign="top" width=65%>HTML HREF 的文字。可以查询,但不能检索。</td>
</tr>
<tr>
<td valign="top">HtmlHeading1</td><td valign="top">DBTYPE_WSTR |
DBTYPE_BYREF</td>
<td valign="top" width=65%>HTML 文档中样式为 H1 的文字。可以查询,但不能检索。</td>
</tr>
<tr>
<td valign="top">HtmlHeading2</td><td valign="top">DBTYPE_WSTR |
DBTYPE_BYREF</td>
<td valign="top" width=65%>HTML 文档中样式为 H2 的文字。可以查询,但不能检索。</td>
</tr>
<tr>
<td valign="top">HtmlHeading3</td><td valign="top">DBTYPE_WSTR |
DBTYPE_BYREF</td>
<td valign="top" width=65%>HTML 文档中样式为 H3 的文字。可以查询,但不能检索。</td>
</tr>
<tr>
<td valign="top">HtmlHeading4</td><td valign="top">DBTYPE_WSTR |
DBTYPE_BYREF</td>
<td valign="top" width=65%>HTML 文档中样式为 H4 的文字。可以查询,但不能检索。</td>
</tr>
<tr>
<td valign="top">HtmlHeading5</td><td valign="top">DBTYPE_WSTR |
DBTYPE_BYREF</td>
<td valign="top" width=65%>HTML 文档中样式为 H5 的文字。可以查询,但不能检索。</td>
</tr>
<tr>
<td valign="top">HtmlHeading6</td><td valign="top">DBTYPE_WSTR |
DBTYPE_BYREF</td>
<td valign="top" width=65%>HTML 文档中样式为 H6 的文字。可以查询,但不能检索。</td>
</tr>
<tr>
<td valign="top">Img_Alt</td>
<td valign="top">DBTYPE_WSTR | DBTYPE_BYREF</td>
<td valign="top" width=65%>&lt;IMG&gt; 标记的候补文字。可以查询,但不能检索。</em></td>
</tr>
<tr>
<td valign="top"><a name="Path">Path</a></td><td valign="top">DBTYPE_WSTR |
DBTYPE_BYREF</td>
<td valign="top" width=65%>文件的物理路径,包含文件名。</td>
</tr>
<tr>
<td valign="top">Rank</td><td valign="top">DBTYPE_I4</td>
<td valign="top" width=65%>行的等级,范围从 0 到 1000,数字越大表示越匹配。</td>
</tr>
<tr>
<td valign="top">RankVector</td><td valign="top">DBTYPE_I4 |
DBTYPE_VECTOR</td>
<td valign="top" width=65%><a href="#VectorQueries">矢量查询</a>的独立组件的等级。</td>
</tr>
<tr>
<td valign="top">ShortFileName</td><td valign="top">DBTYPE_WSTR |
DBTYPE_BYREF</td>
<td valign="top" width=65%>短 (8.3) 文件名。</td>
</tr>
<tr>
<td valign="top">Size</td><td valign="top">DBTYPE_I8</td>
<td valign="top" width=65%>文件大小,单位是字节。</td>
</tr>
<tr>
<td valign="top">USN</td><td valign="top">DBTYPE_I8</td>
<td valign="top" width=65%>更新序列号,仅用于 NTFS 驱动器。</td>
</tr>
<tr>
<td valign="top"><a name="VPath">VPath</a></td><td valign="top">DBTYPE_WSTR |
DBTYPE_BYREF</td>
<td valign="top" width=65%>指向文件的完整虚拟路径,包括文件名。如果有多个可能的路径,将选择最符合查询的一个。</td>
</tr>
<tr>
<td valign="top">WorkId</td><td valign="top">DBTYPE_I4</td>
<td valign="top" width=65%>文件的 Internal ID,Index Server 使用。</td>
</tr>
<tr>
<td valign="top">Write</td><td valign="top">VT_FILETIME</td>
<td valign="top" width=65%>最近一次写文件的时间。</td>
</tr>
</table>


<h2><a name="DefiningNewPropertyNames">定义新属性名</a></h2>

<p>要定义不在前面列表中的属性,必须把它们列在 .idq 文件的 [Names] 节中。要在限制、排序方法或作为检索的列中使用这些在 .idq 文件中定义的属性,请使用下面格式:</p>

<p>[Names]<br>
#不在标准列表中的属性<br>
<em>Propertyname</em> ( <em>Datatype </em>) = <em>GUID</em> ["<em>Name</em>" | <em>propid</em>]<br>
</p>

<p>语法中,<em>"Name"</em> 是属性名(下面的例子是 <strong>"Sales"</strong>),<em>propid</em> 是十六进制的属性 ID 。注意,要用引号把友好名称括起来,但属性 ID??不要用引号。</p>

<p>例如,假设想定义 HTML meta 标记作为属性名,以便某人可以搜索,要定义的属性是 <strong>Sales</strong>。</p>

<p><strong>定义 Sales 属性</strong><!--</p>--><br>

<ol>
<li>在 .idq 文件中的 [Names] 节下,添加下面的行:</li>

<p>MetaDescription(DBTYPE_WSTR) = d1b5d3f0-c0b3-11cf-9a92-00a0c908dbf1 "Sales"<!--</p>--><br>

<p>GUID 号来自注册表的 <strong>MetaTagClsid</strong> 参数,该参数在下面位置:<!--</p>--><br>

<pre>HKEY_LOCAL_MACHINE
SYSTEM
&nbsp;CurrentControlSet
&nbsp;&nbsp;Control
&nbsp;&nbsp;&nbsp;HtmlFilter
&nbsp;&nbsp;&nbsp;&nbsp;MetaTagClsid</pre>

<li>然后,在 HTML 文件中想要出现标记的地方,定义 meta 说明。</li>
<p>例如,假设以后想搜索所有包含销售计划的文件:<!--</p>--><br>
<p>在 File1.htm 中:<!--</p>--><br>
<p>&lt;META NAME="Sales" CONTENT="Projections for 1998"&gt;<!--</p>--><br>
<p>在 File2.htm 中:<!--</p>--><br>
<p>&lt;META NAME="Sales" CONTENT="Projections for 1999"&gt;<!--</p>--><br>
<p>在 File3.htm 中:<!--</p>--><br>
<p>&lt;META NAME="Sales" CONTENT="Sales in 1997"&gt;<!--</p>--><br>
</ol>

<p><strong>注意</strong>&nbsp;&nbsp;&nbsp;请确保将 META NAME 标记添加到文件开始的 &lt;head&gt; 和 &lt;/head&gt; HTML 标记之间。</p>
<p>现在就可以搜索所有关于销售计划的文件,请发送下面查询:</p>
<p>@metadescription projections<!--</p>--><br>
<p>该查询返回所有在 META 标记的 CONTENT 字段中包含单词 <em>projections</em>??的文件。在该例子中,将返回 File1.htm 和 File2.htm。</p>
<p>但是,假如要按年搜索销售情况,例如 1997 年的销售列表,请发送下面查询:</p>
<p>@metadescription 1997<!--</p>--><br>
<p>将返回 File3.htm。</p>

 
  
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·使用ASP加密算法加密你的数据  (2005-04-02)
 ·利用ASP制作EXECL报表方法  (2005-04-02)
 ·ADSI,使用ASP来实现通用的对数据  (2005-04-02)
 ·ADSI,使用ASP来完成NT管理  (2005-04-02)
 ·使用ASP实现基于WEB的数据库资料  (2005-04-02)
 ·用ASP自动生成SQL数据库的安装源  (2005-04-02)
 ·用ASP代码创建EXCHANGE2000用户  (2005-04-02)
 ·用ASP在客户端注册DLL文件  (2005-04-02)
 ·用Asp写个加密和解密的类  (2005-04-02)
 ·用ASP.NET实现在线用户统计  (2005-04-02)

   栏目导行
  PHP编程
  ASP编程
  ASP.NET编程
  JAVA编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·DiscuzX2.5会员整合通行证发布
·帝国CMS 7.0版本功能建议收集
·帝国网站管理系统2012年授权购买说
·PHPWind8.7会员整合通行证发布
·[官方插件]帝国CMS-访问统计插件
·[官方插件]帝国CMS-sitemap插件
·[官方插件]帝国CMS内容页评论AJAX分
   类别最新
·在ASP中使用数据库
·使用ASP脚本技术
·通过启动脚本来感受ASP的力量
·学习使用ASP对象和组件
·解析asp的脚本语言
·初看ASP-针对初学者
·ASP开发10条经验总结
·ASP之对象总结
·ASP与数据库应用(给初学者)
·关于学习ASP和编程的28个观点
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统