用asp怎樣編寫文檔搜索頁面(使用index server)----1 - 中國WEB開發者網絡 (http://www.webasp.net) -- 技術教程 (http://www.webasp.net/article/) --- 用asp怎樣編寫文檔搜索頁面(使用index server)----1 (http://www.webasp.net/article/3/2721.htm) |
| -- 作者:未知 -- 發佈日期: 2003-07-11 |
| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"><br>
<html><head><title>Microsoft Index Server: 查詢語言</title><br> <br> <br> <SCRIPT LANGUAGE="JavaScript"><br> TempString = navigator.appVersion<br> if (navigator.appName == "Microsoft Internet Explorer"){ <br> // Check to see if browser is Microsoft<br> if (TempString.indexOf ("4.") >= 0){<br> // Check to see if it is IE 4<br> document.writeln('<link rel="stylesheet" type="text/css" href="/iishelp/common/coua.css">');<br> }<br> else {<br> document.writeln('<link rel="stylesheet" type="text/css" href="/iishelp/common/cocss.css">');<br> }<br> }<br> else if (navigator.appName == "Netscape") { <br> // Check to see if browser is Netscape<br> document.writeln('<link rel="stylesheet" type="text/css" href="/iishelp/common/coua.css">');<br> }<br> else<br> document.writeln('<link rel="stylesheet" type="text/css" href="/iishelp/common/cocss.css">');<br> </script><br> <br> <META NAME="DESCRIPTION" CONTENT="Tells how to refine searches by using complex queries"></head><br> <br> <body bgcolor="#FFFFFF" text="#000000"><br> <font face="細明體"> <br> <br> <h1><a name="QueryLanguage">查詢語言</a></h1><br> <br> <p>通過在查詢表格中鍵入單詞或短語,然後單擊按鈕執行查詢,就可以在 Web 站點中搜索任意的單詞或短語(例如,查詢表格示例中的「執行查詢」按鈕)。本節將介紹以下主題:<br> </p><br> <br> <ul><br> <li><strong><a href="#Operators">邏輯和相近運算符</a>:</strong>顯示如何通過插入邏輯和相近運算符執行更精確的查詢。</li><br> <li><strong><a href="#Wildcards">通配符</a>:</strong>幫助您查找包含與所給單詞相似的單詞的頁。</li><br> <li><strong><a href="#FreeTextQueries">自由文本查詢</a>:</strong> 說明如何基於短語的意思來表述一個查詢,而不是用精確的單詞。</li><br> <li><strong><a href="#VectorQueries">矢量空間查詢</a>:</strong>解釋如何獲得與單詞和短語列表匹配的查詢結果。</li><br> <li><strong><a href="#PropertyValueQueries">屬性值查詢</a>:</strong>告訴您如何查詢文件的屬性值。</li><br> <li><strong><a href="#Examples">查詢示例</a>:</strong>給出各種查詢的示例。</li><br> <li><strong><a href="#PropertyNamesList">屬性名列表</a>:</strong>列出和說明可用於查詢的屬性名。</li><br> </ul><br> <br> <p>搜索產生一個文件列表,這些文件中包含某個單詞或短語(不管單詞或短語出現在文件中的任何地方)。下面列表給出表述查詢的規則:</p><br> <br> <ul><br> <li>連續的單詞作為短語對待,它們在匹配文檔中必須以相同的順序出現。</li><br> <li>查詢不區分大小寫,因此可以用大寫或小寫鍵入查詢。</li><br> <li>可以搜索任何單詞,但不包括在例外列表中列出的單詞(對於英語,包括 <em>a</em>、<em>an</em>、<em>and</em>、<em>as</em> 和其他一些單詞), 它們在查詢中將被忽略。</li><br> <li>在例外列表中的單詞在短語中將作為佔位符對待,用來進行相似查詢。例如,如果查詢「Word for Windows」,結果將給出「Word for Windows」和「Word and Windows」 ,因為 <em>for </em> 是一個在例外列表中出現的虛詞。</li><br> <li>標點符號在搜索時將被忽略,如句號 (.)、冒號 (:)、分號 (;) 和逗號 (,)。</li><br> <li>要在查詢中使用特殊對待的字符,如 &、|、^、#、@、$、(、),請用引號 (“) 將查詢括起來。</li><br> <li>要搜索包含引號的單詞或短語,請先用引號把整個短語括起來,並用兩遍引號括住想用引號括起來的單詞。例如,“World-Wide Web or ““Web””” 將搜索 <em>World-Wide Web or “Web”</em>。</li><br> <li>可以插入<a href="#Operators">邏輯運算符</a>(<strong>AND</strong>、 <strong>OR</strong> 和 <strong>NOT</strong>)以及<a href="#Operators">相近運算符</a> (<strong>NEAR</strong>) 來指定附加的搜索信息。</li><br> <li><a href="#Wildcards">通配字符</a> (*) 可以用所給前綴匹配單詞。查詢 esc* 可以匹配詞條 “ESC”、“escape” 等等。</li><br> <li><a href="#FreeTextQueries">自由文本查詢</a>可以不按查詢語法指定查詢。</li><br> <li>可以指定<a href="#VectorQueries">矢量空間查詢</a>。</li><br> <li>可以執行 ActiveX™ (OLE) 和文件屬性的<a href="#PropertyValueQueries">屬性值查詢</a>。</li><br> </ul><br> <br> <h1><a name="Operators">邏輯和相近運算符</a></h1><br> <br> <p>邏輯和相近運算符可以創建更精確的查詢。</p><br> <br> <table border="1" cellpadding="4" cellspacing="1" width="100%"><br> <tr><br> <th align="Left" valign="bottom" bgcolor="#C0C0C0" width=33%>搜索目標</th><br> <th align="Left" valign="bottom" bgcolor="#C0C0C0" width=33%>示例</th><br> <th align="Left" valign="bottom" bgcolor="#C0C0C0" width=33%>結果</th><br> </tr><br> <tr><br> <td valign="top">同一頁中同時包含兩個詞條</td><br> <td valign="top"><code>access and basic</code><br><br> <strong>—</strong>或<strong>—</strong><br><br> <code>access & basic</code></td><br> <td valign="top">包含單詞“access”和“basic”的頁。</td><br> </tr><br> <tr><br> <td valign="top">同一頁中包含兩個詞條之一</td><br> <td valign="top"><code>cgi or isapi</code><br><br> <strong>—</strong>或<strong>—</strong><br><br> <code>cgi | isapi</code></td><br> <td valign="top">包含單詞“cgi”或“isapi”的頁。</td><br> </tr><br> <tr><br> <td valign="top">包含第一個詞條,但不包含第二個詞條</td><br> <td valign="top"><code>access and not basic</code><br><br> <strong>—</strong>或<strong>—</strong><br><br> <code>access & ! basic</code></td><br> <td valign="top">包含單詞“access”,但不包含單詞“basic”的頁。</td><br> </tr><br> <tr><br> <td valign="top">不匹配某個屬性值的頁</td><br> <td valign="top"><code>not @size = 100</code><br><br> <strong>—</strong>或<strong>—</strong><br><br> <code>! @size = 100</code></td><br> <td valign="top">大小不是 100 字節的頁。</td><br> </tr><br> <tr><br> <td valign="top">同一頁中同時包含兩個詞條,且互相靠近</td><br> <td valign="top"><code>excel near project</code><br><br> <strong>—</strong>或<strong>—</strong><br><br> <code>excel ~ project</code></td><br> <td valign="top">包含互相靠近的單詞“excel”和“project”的頁。</td><br> </tr><br> </table><br> <br> <p>提示:</p><br> <br> <ul><br> <li>可以在查詢表達式中加入括弧,表達式中帶括弧的部分比查詢的其他部分先執行。</li><br> <li>使用雙引號 (“) 可以指明邏輯或 <strong>NEAR</strong> 運算符關鍵字在查詢中需要忽略。例如,“Abbott and Costello”將匹配包含該短語的頁,而不是匹配符合該邏輯表達式的頁。作為運算符,單詞 <em>and</em> 在英語中是一個虛詞。</li><br> <li><strong>NEAR</strong> 運算符與 <strong>AND</strong> 運算符相似, <strong>NEAR</strong> 也返回一頁中兩個單詞都包含的頁。但是,<strong>NEAR</strong> 和 <strong>AND</strong> 運算符不同之處在於,<strong>NEAR</strong> 要看單詞是否靠近。也就是說,包含搜索單詞較近的頁的等級將大於或等於單詞相隔較遠的頁的等級。如果搜索的單詞相隔大於 50 個單詞,該頁將定為等級零</li><br> <li>在內容查詢中,<strong>NOT</strong> 運算符只能用在 <strong>AND</strong> 運算符之後,它僅用來排除匹配前面內容約束的頁。對於屬性值查詢,<strong>NOT</strong> 運算符可以不與 <strong>AND</strong> 運算符一起使用。</li><br> <li><strong>AND</strong> 運算符的優先級高於 <strong>OR</strong>。例如,下面的前三個查詢相等,但第四個不同:<br><br> a AND b OR c<br><br> c OR a AND b<br><br> c OR (a AND b)<br><br> (c OR a) AND b</li><br> </ul><br> <br> <p><strong>注意</strong> 在所有語言中,符號(&、|、!、 ~)與英語關鍵字 <strong>AND</strong>、<strong>OR</strong>、<strong>NOT</strong> 和 <strong>NEAR</strong> 的作用相同(Index Server 支持)。如果瀏覽器被設置為下列六種語言,本地化的關鍵字也可以使用。</p><br> <br> <table border="1" cellpadding="4" cellspacing="1" width="100%"><br> <tr><br> <th align="Left" valign="bottom" bgcolor="#C0C0C0" width="40%">語言</th><br> <th align="Left" valign="bottom" bgcolor="#C0C0C0" width="60%">關鍵字</th><br> </tr><br> <tr><br> <td valign="top">德語</td><br> <td valign="top"><strong>UND</strong>、<strong>ODER</strong>、<strong>NICHT</strong>、<strong>NAH</strong></td><br> </tr><br> <tr><br> <td valign="top">法語</td><br> <td valign="top"><strong>ET</strong>、<strong>OU</strong>、<strong>SANS</strong>、 <strong>PRES</strong></td><br> </tr><br> <tr><br> <td valign="top">西班牙語</td><br> <td valign="top"><strong>Y</strong>、<strong>O</strong>、<strong>NO</strong>、<strong>CERCA</strong></td><br> </tr><br> <tr><br> <td valign="top">荷蘭語</td><br> <td valign="top"><strong>EN</strong>、<strong>OF</strong>、<strong>NIET</strong>、 <strong>NABIJ</strong></td><br> </tr><br> <tr><br> <td valign="top">瑞典語</td><br> <td valign="top"><strong>OCH</strong>、<strong>ELLER</strong>、<strong>INTE</strong>、<strong>NÄRA</strong></td><br> </tr><br> <tr><br> <td>意大利語</td><td><strong>E</strong>、<strong>O</strong>、<strong>NO</strong>、<strong>VICINO</strong></td><br> </tr><br> </table><br> <p><strong>注意</strong> NEAR 運算符只能用於單詞或短語。</p><br> <br> <h1><a name="Wildcards">通配符</a></h1><br> <br> <p><a name="Wildcards">通配符可以幫助您查找包含與所給單詞相似的單詞的頁。</a></p><br> <br> <table border="1" cellpadding="4" cellspacing="1" width="100%"><br> <tr><br> <th align="Left" valign="bottom" width=33% bgcolor="#C0C0C0"><a name="Wildcards">搜索目標</a></th><br> <th align="Left" valign="bottom" width=33% bgcolor="#C0C0C0"><a name="Wildcards">示例</a></th><br> <th align="Left" valign="bottom" width=33% bgcolor="#C0C0C0"><a name="Wildcards">結果</a></th></tr><br> <tr><br> <td valign="top"><a name="Wildcards">具有相同前綴的單詞</a></td><br> <td valign="top"><a name="Wildcards"><code>comput*</code></a></td><br> <td valign="top"><a name="Wildcards">包含前綴為“comput”的單詞的頁,例如“computer”、“computing”等等</a>。</td><br> </tr><br> <tr><br> <td valign="top"><a name="Wildcards">基於同一個本詞的單詞</a></td><br> <td valign="top"><a name="Wildcards"><code>fly**</code></a></td><br> <td valign="top"><a name="Wildcards">包含基於相同本詞“fly”的單詞的頁,例如“flying”、“flown”、“flew”等等</a>。</td><br> </tr><br> </table><br> <br> <h1><a name="FreeTextQueries">自由文本查詢</a></h1><br> <br> <p><a name="FreeTextQueries">在自由文本查詢中,查詢引擎查找與單詞或短語最佳匹配的頁。這種查詢匹配意思,而不是精確的單詞。在自由文本查詢中,邏輯、相近和通配運算符都將被忽略。自由文本查詢以 $contents 為前綴。</a></p><br> <br> <table border="1" cellpadding="4" cellspacing="1" width="100%"><br> <tr><th align="Left" valign="bottom" width=33% bgcolor="#C0C0C0"><a name="FreeTextQueries">搜索目標</a></th><br> <th align="Left" valign="bottom" width=33% bgcolor="#C0C0C0"><a name="FreeTextQueries">示例</a></th><br> <th align="Left" valign="bottom" width=33% bgcolor="#C0C0C0"><a name="FreeTextQueries">結果</a></th><br> </tr><br> <tr><br> <td valign="top"><a name="FreeTextQueries">匹配自由文本的文件</a></td><br> <td valign="top"><a name="FreeTextQueries"><code>$contents how do I print in Microsoft Excel? </code></a></td><br> <td valign="top"><a name="FreeTextQueries">提到 printing 和 Microsoft Excel 的頁。</a></td><br> </tr><br> </table><br> <br> <h1><a name="VectorQueries">矢量空間查詢</a></h1><br> <br> <p>查詢引擎支持矢量空間查詢。矢量查詢返回匹配單詞和短語列表的頁,每頁的排列指明了頁面與查詢匹配的程度。</p><br> <br> <br> <table border="1" cellpadding="4" cellspacing="1" width="100%"><br> <tr><br> <th align="Left" valign="bottom" width=33% bgcolor="#C0C0C0">搜索目標</th><br> <th align="Left" valign="bottom" width=33% bgcolor="#C0C0C0">示例</th><br> <th align="Left" valign="bottom" width=33% bgcolor="#C0C0C0">結果</th></tr><br> <tr><br> <td valign="top">包含指定單詞的頁</td><br> <td valign="top"><code>light, bulb</code></td><br> <td valign="top">包含與搜索單詞最匹配的單詞的文件</td><br> </tr><br> <tr><br> <td valign="top">包含加權的前綴、單詞和短語的頁</td><br> <td valign="top"><code>invent*, light[50], bulb[10], <br> "light bulb"[400]</code></td><br> <td valign="top">包含以“invent,”為前綴的單詞、單詞“light”、 “bulb”和短語“light bulb”的文件(詞條被加權)</td><br> </tr><br> </table><br> <br> <p> <!-- </p> --><br><br> <br> <ul><br> <li>在矢量查詢中的組件以逗號隔開。</li><br> <li>矢量查詢中的組件可以用 [weight] 語法加權。</li><br> <li>矢量查詢返回的頁不必匹配查詢的所有詞條。</li><br> <li>當結果按等級排序時,矢量查詢最好。</li><br> </ul><br> <br> <h1><a name="PropertyValueQueries">屬性值查詢</a></h1><br> <br> <p>用屬性值查詢,可以查找含有與所給標準相匹配的屬性值的文件。可以用來查詢的屬性包括文件的基本信息(如文件名、文件大小)和 ActiveX 屬性(包含在文檔摘要中),ActiveX 屬性由 ActiveX 應用程序創建並存儲在文件中。</p><br> <br> <p>下面是兩種類型的屬性查詢:</p><br> <br> <ul><br> <li><a name="PropertyValueQueries"><strong>關係屬性查詢</strong>包括“at”字符 (@)、</a><a href="#PropertyNames">屬性名</a>、<a href="#RelationalOperators">關係運算符</a>和<a href="#PropertyValues">屬性值</a>。例如,要查找大小超過一兆字節的文件,可以執行查詢 @size > 1000000。</li><br> <li><strong>正則表達式查詢</strong>包括號碼符號 (#)、屬性名和屬性值的<a href="#RegularExpressions">正則表達式</a>。例如,要查找所有視頻 (.avi) 文件,可以執行查詢 #filename *.avi。正則表達式不會匹配特定的屬性內容 (#contents) 和全部 (#all)。 在查詢中不能檢索的屬性不能用於 # 查詢,包括未存儲在屬性緩存中的 HTML META 屬性。</li><br> </ul><br> <br> <p>本節包含以下主題:</p><br> <br> <ul><br> <li><a href="#PropertyNames">屬性名</a></li><br> <li><a href="#RelationalOperators">關係運算符</a></li><br> <li><a href="#PropertyValues">屬性值</a></li><br> </ul><br> <br> <h2><a name="PropertyNames">屬性名</a></h2><br> <br> <p>屬性名以“at”(@) 或號碼符號 (#) 開頭,@ 用於關係查詢,# 用於正則表達式查詢。</p><br> <br> <p>如果未指定屬性名,將假定為 <em>@contents</em>。</p><br> <br> <p>所有文件中都可用的屬性包括:</p><br> <br> <table border="1" cellpadding="4" cellspacing="1" width="100%"><br> <tr><br> <th align="Left" valign="bottom" bgcolor="#C0C0C0" width="40%">屬性名</th><br> <th align="Left" valign="bottom" bgcolor="#C0C0C0" width="60%">說明</th></tr><br> <tr><br> <td valign="top">All</td><br> <td valign="top">匹配單詞、短語和任何屬性</td><br> </tr><br> <tr><br> <td valign="top">Contents</td><br> <td valign="top">文件中單詞和短語</td><br> </tr><br> <tr><br> <td valign="top">Filename</td><br> <td valign="top">文件的名稱</td><br> </tr><br> <tr><br> <td valign="top">Size</td><br> <td valign="top">文件大小</td><br> </tr><br> <tr><br> <td valign="top">Write</td><br> <td valign="top">文件的最後一次修改時間</td><br> </tr><br> </table><br> <br> <p>ActiveX 屬性值也可以用於查詢,絕大多數由 ActiveX 應用程序創建的 Web 站點文件可以用下列屬性查詢:</p><br> <br> <table border="1" cellpadding="4" cellspacing="1" width="100%"><br> <tr><br> <th align="Left" valign="bottom" bgcolor="#C0C0C0" width="40%">屬性名</th><br> <th align="Left" valign="bottom" bgcolor="#C0C0C0" width="60%">說明</th></tr><br> <tr><br> <td valign="top">DocTitle</td><br> <td valign="top">文檔的標題</td><br> </tr><br> <tr><br> <br> <br> |
| webasp.net |