精华内容
下载资源
问答
  • 连续的单词作为短语对待,它们在匹配文档中必须以相同的顺序出现。 查询不区分大小写,因此可以用大写或小写键入查询。 可以搜索任何单词,但不包括在例外列表中列出的单词(对于英语,包括 <em>a、<em>an、<em>and...
    <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>














    本文转自starger51CTO博客,原文链接: http://blog.51cto.com/starger/19894,如需转载请自行联系原作者

    展开全文
  • 怎样编写软件文档

    2015-10-14 15:45:00
    1、软件开发的步骤:需求理解分析、设计、编码、调试、验收。功能上的关系:可以使用UML中的用例图来体现(需要懂得UML如何画)。数据上的关系:UML中类图、Sequence图都是非常便利的。抽象出类:这个需要知道面向...
    1、软件开发的步骤:需求理解分析、设计、编码、调试、验收。
    功能上的关系:可以使用UML中的用例图来体现(需要懂得UML如何画)。
    数据上的关系:UML中类图、Sequence图都是非常便利的。
    抽象出类:这个需要知道面向对象的知识。

    2、概要设计主要阐述系统的目标、建设原则,系统的功能模块及数据库概要设计(有哪些表名),
    概要设计面向设计人员和用户,简单说,用户也能看得懂,不要求太细节,是对用户需求的技术响应,是二者沟通的桥梁。

    详细设计则是在概要设计的基础上对系统的各个模块进一步细化,分析各个模块的子模块,甚至给出各子模块的算法;
    数据库设计方面则要求到具体每张表的字段。通常面向开发人员,应该是开发人员看了你的详细设计,就可以直接写代码。

    转载于:https://www.cnblogs.com/li1111xin/p/4877649.html

    展开全文
  • 产品需求文档怎样编写

    千次阅读 2018-09-07 12:20:06
    产品需求文档是将商业需求文档(BRD)和市场需求文档(MRD)用更加专业的语言进行描述。该文档是产品项目由“概念化”阶段进入到“图纸化”阶段的最主要的一个文档。当然,这个定义针对的是一个全新的产品。广义上来...

    身为一个初学者,领导交代的任务当然得努力完成啊,本着害怕忘记的心态写下了这篇博客

    首先我们得了解什么是需求文档?


    1. 产品需求文档是将商业需求文档(BRD)和市场需求文档(MRD)用更加专业的语言进行描述。该文档是产品项目由“概念化”阶段进入到“图纸化”阶段的最主要的一个文档。当然,这个定义针对的是一个全新的产品。广义上来讲,产品需求的描述,应该包含有产品的战略和战术,战略是指:产品定位、目标市场、目标用户、竞争对手等。战术是指产品的结构、核心业务流程、具体用例描述、功能&内容描述等,本文主要讨论的是战术部分。
    2. 产品需求文档是将商业需求文档(BRD)和市场需求文档(MRD)用更加专业的语言进行描述。该文档是产品项目由“概念化”阶段进入到“图纸化”阶段的最主要的一个文档。当然,这个定义针对的是一个全新的产品。广义上来讲,产品需求的描述,应该包含有产品的战略和战术,战略是指:产品定位、目标市场、目标用户、竞争对手等。战术是指产品的结构、核心业务流程、具体用例描述、功能&内容描述等,本文主要讨论的是战术部分。

    明白了什么是需求文档后我们应该开始撰写了!

    那么我们需要写哪些内容呢?

    1. 命名规则:XX产品XXXX需求_PRD的版本号.

    2. 历史版本记录:包括,编号、文档版本、章节、修改原因、日期、修改人。编号只是为了记录修改的顺序,文档版本显示的当前修改的内容属于文档的第几个版本(或第几次修改,一次修改一般为一个版本),章节是具体到修改内容属于的功能模块,以便阅读人及时找到修改后的内容,修改原因说明为什么要修改该需求,让阅读者直观的了解原因。日期是指需求文档修改的时间,修改人是指需求内容的修改者。

    3. 目录:一般为自动生成

    4. 引言: 这部分的内容有:产品概述及目标、产品roadmap、预期读者、成功的定义标准和判断、参考资料、名词说明

        产品概述:解释说明该产品研发的背景以及核心功能。

        产品roadmap:为产品规划的蓝图,每个关键阶段完成的核心任务。产品研发是个不断迭代的过程,需要经过若干个版本的迭代,,对一个功能点做了N个迭代后最终又回归到了第一个迭代是很常见。产品经理需要做好心理准备。产品roadmap并不需要全部规划好所有的阶段目标,但是对产品未来发展趋势的一种预估,要达到目标,需要更多的更新和迭代。清晰的呈现产品的roadmap可以帮助产品经理把握产品的全貌,更好的控制研发过程。

        预期读者:文档的使用对象

        成功的定义和判断标准:旨在说明产品的目标

        名词说明:名称、说明。名称就是对文档中会出现的比较新的名称,说明则是对这些名称进行解释。
      5.需求概述:需求概述通常包括需求概览、用户类与特征、运行环境、设计和实现上的限制、项目计划、产品风险等等。

        需求概览:分两部分,一是业务流程图,对产品整个业务流程的发生过程做图形化的展示,是对产品整体功能流程的阐释。二是需求清单,对本次要开发的需求任务做分类,给出简明扼要的需求描述并标注优先级。

        用户类与特征:产品的最终用户,确定产品的最终使用者,并对使用者的角色和操作行为做出说明。

        运行环境:该产品上线后的使用环境,比如支持的浏览器及其版本,操作系统、数据库的要求等等,测试人员在看到环境要求后会在测试时重点测试,而最终上线产品时需要把最佳的运营环境告知给用户。设计和实现上的限制:比如控件的开发环境、接口的调用方式等等。

        项目计划:对于prd中要开发的内容,给出关键里程碑,比如需求评审通过的时间、开发的完成时间、上线时间等等。

        产品风险:描述产品可能存在的风险,比如性能瓶颈,没有解决的问题,用户不当使用的风险等等。
      6.功能需求:功能需求一般是由功能详情和主流程说明两大部分。功能详情是所有的产品功能的描述和规划。功能详情包括以下内容:

        简要说明:介绍此功能的用途,包括其来源或背景,能够解决哪些问题。

        场景描述,产品在哪种情况下会被用户使用,就是用户场景模拟。这也是产品经理讲“好”故事的必备条件。

        业务规则:每上产品在开发时都有相应的业务规则,将这些规则清晰的描述出来,让开发、测试人员能够直观的明白该规则,且没有产生歧义。业务规则必需是完整的、准确的、易懂的。业务规则的描述上如果涉及到页面交互或者页面的修改,建议给出页面的草图或者页面截图在图上说明要修改的内容。另外也建议对页面的输入框、下拉框的内容格式、长度、控件之间的关联性做出说明,什么时候可见,不可见,灰掉或点亮的条件在文档中都给出说明。方便阅读者理解业务规则。

        界面原型:如前所述,涉及到页面交互的部分,产品经理需要设计页面原型。原型设计通常需要产品经理和UI设计师一起来完成。建议的做法是,产品经理可设计一个页面框架,将该页面要呈现的字段及其特征以及页面要使用的场景向交互设计师解释清楚。之后交互和视觉设计师完成产品的原型设计。

        使用者说明:对产品使用者做出说明,可融入简要说明中。

        前置条件:该需求实现依赖的前提条件。比如,上传照片时,需要存有图像文件。

        后置条件:操作后引发的后续处理。

        主流程:把主流放在最后是有道理的,结合上面所说的,做出主流程说明,对每个功能流程走向分点说明(这是非常重要的)。

        看过很多的PRD,文档中对既没有前提条件,也没有后置条件,只对主流程做了说明,但是在描述主流程时却没有描写主流程中每个功能流程的各种走向,只有一个主走向,让人感觉prd成了操作手册。事实上,对分支的介绍是非常重要的,开发和测试中提出的各类问题均与对分支的定义不明有关。一个合格的PRD不仅要描述主流程,同时对分支流程所出现的各类问题都要做详细阐述并给出解决办法。PRD的特征一定是明确的、全面的阐述需求及各类异常情况的处理而不是等到开发和测试阶段发现问题后再给以答案(虽然PRD不可能百分之百的覆盖所有的可能,但是最大化的思考所有的业务问题是编制PRD时必须遵守的原则)。另外,在描写功能需求时给出的办法中不能出现“可能”、“或者”等词,一定是明确的,唯一的描述。如果有别的方案,建议写入“可选方案”,在产品构建的早期可选方案可以为功能实现提供更多的选择,当方案确定后可在文档中注明本次使用了哪种方案。

        推荐一个方法:“用例”,在面向对象的软件设计模型中,用例是一个被阐述的内容,用例是对功能使用场景的解释。用例很条理的介绍了每个功能的前置、后置条件,主流程介绍,帮助开发、测试等角色快速的了解产品功能。

    展开全文
  • 怎样撰写自己的屏幕模板 提供了很详细的方法初学者的必备,如果你还为编写自己的模板而烦扰就用这个文档包你学会
  • 问:为什么要编写软件架构文档,它的优点是什么? 答: 有文档的架构有助于不同利益相关者之间进行有效的沟通。 有文档的架构能够提供追溯其它工作产品的上下文。 有文档的架构能够传达可供选择的架构...

    假设你对项目管理、系统架构有兴趣,请加微信订阅号“softjg”,增加这个PM、架构师的大家庭


    问:为什么要编写软件架构文档,它的优点是什么?

    答:

    有文档的架构有助于不同利益相关者之间进行有效的沟通。

    有文档的架构能够提供追溯其它工作产品的上下文。

    有文档的架构能够传达可供选择的架构解决方式。

    有文档的架构有助于从一个现有架构转换到一个新架构计划的计划编制。

    有文档的架构通常能通过识别组成架构的元素及它们之间的依赖性来帮助编制计划。

    有文档的架构能够提醒架构师在其所作的某些决定背后的基本原理。

    有文档的架构有助于识别哪些资源可重用以及可重用的时机。

    有文档的架构有助于架构的评估。


    问:编写软件架构文档的步骤是什么?

    答:

    识别利益相关者组。

    选择视点。

    创建工作产品。

    给架构描写叙述打包。


    问:编写软件架构文档的视点有哪些?

    答:

    视点分为两类,各自是基础视点和交叉视点。当中基本视点的类型有四种,分别为:

    (1)功能性视点:它关注支持系统功能性的元素。

    (2)部署视点:它关注支持系统分布的元素。

    (3)需求视点:为形成架构的系统需求提供说明,它包含功能性需求、品质和约束。

    (4)确认视点:为系统提供必需的功能、展示必需的品质和适应定义的约束提供说明。

    交叉视点是从某一特定功能的视点出发,与基础视点交叉综合关注的元素,下图为一交叉视点的样例。


    问:软件架构通常要描写叙述框架,应该从哪些角度去描写叙述?

    答:

    多重视图和场景视图的使用。

    实现层级。

    交叉关注。


    问:软件架构的4+1视图模型是什么?

    答:

    软件架构的4+1视图是指逻辑视图、开发视图、过程视图、物理视图和场景(视图)。

    逻辑视图是设计的对象模型。

    过程视图获取设计的并发和同步方面的信息。

    开发视图描写叙述的是软件开发环境中的软件静态组织。

    物理视图描写叙述了软件与硬件之间的映射,还反映了它在分布式方面的信息


    假设你对项目管理、系统架构有兴趣,请加微信订阅号“softjg”,增加这个PM、架构师的大家庭


    展开全文
  • 在项目开发过程中,应该按要求编写好十三种文档文档编制要求具有针对性、 精确性、清晰性、完整性、灵活性、可追溯性。  ◇ 可行性分析报告: 说明该软件开发项目的实现在技术上、经济上和社会因素上的可行性,...
  • 怎样文档

    2014-02-10 17:20:00
    1.编写文档的常见问题 每个项目都要写不少文档,比如项目实施计...
  • 怎样编写CSS?

    2011-03-09 10:54:00
    从上面的例子中,我们可以看到CSS的语句是内嵌在HTML文档内的。... 那么您可能会问,独立编辑好的CSS文档怎样加入到HTML文档中呢?其实在第一章中的例子里已经介绍了两种方法。 一种是把CSS文档放到文档中: 其中
  • 怎样编写CSS

    千次阅读 2007-07-10 15:34:00
    那么您可能会问,独立编辑好的CSS文档怎样加入到HTML文档中呢?其实在第一章中的例子里已经介绍了两种方法。 一种是把CSS文档放到文档中: …… 其中中的“type=‘text/css’”的意思是中的代
  • 文档编写标准化 在项目开发过程中,应该按要求编写好十三种文档文档编制要求具有针对性、 精确性、清晰性、完整性、灵活性、可追溯性。 ◇ 可行性分析报告: 说明该软件开发项目的实现在技术上、经济上和社会...
  • 怎样编写后台需求

    2020-03-24 15:12:14
    我理解后台的需求文档不同与类似直接用户交互的系统: 直接用户交互的需求是有强调前端美观和布局一类的合理性,归根是者强调用户体验, 给开发的感觉有种“看图说话”的感觉,相对比较独立 开发比较自主,主要...
  • 怎样编写概要设计

    2015-10-27 17:04:00
    摘要:  本文是在概要设计实践和学习中的一些心得与学习笔记,希望与大家分享,如有不妥之处欢迎指正。...因此,对大部分的公司来说,概要设计文档是唯一的设计文档,对后面的开发、测试、实施、维护工作起到关
  • 编写文档的5W2H原则

    2017-04-10 09:39:28
    1.WHY ——为什么?为什么要这么做?理由何在?原因是什么? 2. WHAT——是什么?目的是什么?做什么工作? 3. WHERE——何处?在哪里做?... 5....方法怎样? 7. HOW MUCH——多少?做到什么程度?需要多少时间
  • 飞鸽传书怎样编写CSS?学完html我们可以选择性的了解一下CSS,二者在编写是有许多相似的地方或者是包容的地方,可以说是html进化的一个支线。CSS的语句是内嵌在HTML文档内的。所以,编写CSS的方法和编写HTML文档的...
  • 编写README文档1. README 剖析2. 用 Markdown 便携易读的 README 文档2.1 Markdown 基础知识2.1.1 设置文本加粗2.1.2 设置文本斜体2.1.3 码,还是 不码?2.1.4 标题顺序三级目录 首先需要注意的是,没有官方规定 ...
  • 【转载】怎样编写CSS?

    千次阅读 2006-11-09 09:32:00
    怎样编写CSS?从上面的例子中,我们可以看到CSS的语句是内嵌在HTML文档内的。所以,编写CSS的方法和编写HTML文档的方法是一样的。 您可以用任何一种文本编辑工具来编写。比如Windows下的记事本和写字板、专门的HTML...
  • 二、怎样编写CSS?

    2007-06-15 10:28:00
    从上面的例子中,我们可以看到CSS的语句是内嵌在HTML文档内的。所以,编写CSS的方法和编写HTML文档的方法是一样的。... 那么您可能会问,独立编辑好的CSS文档怎样加入到HTML文档中呢?其实在第一章中的例子里已经介绍
  • 除了第二步选单文档,基本上都是默认的。 建一个文件进行一下操作 我建的文件名为ZuoBiao 在CZuoBiaoView.h里面添加变量: int m; CPoint p1,p2; 在构造函数里面初使化m。 CZuoBiaoView::CZuoBiaoView()
  • 飞鸽传书怎样编写CSS?学完html我们可以选择性的了解一下CSS,二者在编写是有许多相似的地方或者是包容的地方,可以说是html进化的一个支线。CSS的语句是内嵌在HTML文档内的。所以,编写CSS的方法和编写HTML文档的...
  • 怎样写需求文档

    2019-10-02 11:41:48
    内容摘要: 编写优秀的需求文档没有现成固定的方法,最好是根据经验进行。从过去所遇到的问题中可使你受益匪浅。 许多需求文档可以通过使用有效的技术编写风格和使用用户术语而不是计算机专业术语的方式得以改进。...
  • 当代码自我文档化的时候,就不需要注释去它的作用或者目的,并且也能使代码变得非常容易维护。 在这篇文章中,我将提供一些让你的代码自我文档化的方式。下面就是三种使得代码自文档化的基本方法: 命名:利用名字来...
  • 文档编写格式调整要点

    千次阅读 2013-04-01 18:25:56
     在论文编写的过程中,或者当你设计一个表格时,怎样才能做一份合格且标准的文章呢?这里不谈具体的规范,每个学校有自己的论文编写规范。这里只讲怎么保证格式符合要求,或者设计出的文档格式和标准格式看起来一样...
  • 需求文档怎么编写

    2014-04-11 09:28:38
    5个W2H原则说明:1.WHY ——为什么?为什么要这么做?理由何在?原因是什么?2. WHAT——是什么?目的是什么?做什么工作?3. WHERE——何处?...方法怎样?7. HOW MUCH——多少?做到什么程度?需要多少时间

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 423
精华内容 169
关键字:

怎样编写文档