Sun ONE Web Server 6.1 管理員指南 |
第 18 章
使用搜尋Sun ONE Web Server 6.1 包含搜尋功能,該功能允許使用者在伺服器上搜尋文件並將搜尋結果顯示在網頁上。伺服器管理員依據使用者要搜尋的文件 (稱為集合) 來建立文件索引,還可以自訂搜尋介面以滿足其使用者的需要。
本章包含下列章節:
關於搜尋在安裝 Sun ONE Web Server 期間,搜尋功能會隨同其他 Web 元件一同安裝。與在 Sun ONE Web Server 6.0 中一樣,搜尋是在虛擬伺服器層級而不是伺服器實例層級上進行配置和管理的。
Virtual Server Manager 的 [搜尋] 標籤用於為各個虛擬伺服器配置搜尋。經由此標籤,您可以執行以下作業:
從管理介面取得的資訊儲存在 <server-root>/config/server.xml 檔案中,並在該檔案的 VS 元素內進行對映。
伺服器管理員可以自訂搜尋查詢和搜尋結果頁面。這可能包括使用公司標誌重新設定頁面,或者變更搜尋結果的顯示方式。在先前發行版本中,這些作業是透過使用型樣檔案來完成的。Sun ONE Web Server 6.1 不支援型樣檔案。現在使用產品隨附的一組 JSP 標籤檔案庫來執行自訂作業。這些庫所提供的功能與型樣檔案所提供的功能類似。如需關於自訂搜尋介面的更多資訊,請參閱自訂搜尋頁面。
本發行版本不具有先前發行版本中具有的全域搜尋「開啟」或「關閉」功能。而是提供了一個預設的搜尋 Web 應用程式,然後在特定虛擬伺服器上啟用或停用該應用程式。此搜尋應用程式提供了用於查詢集合和檢視結果的基本網頁。此搜尋應用程式包含 JSP 範例,這些 JSP 範例展示了如何使用搜尋標籤檔案庫來建立自訂搜尋介面。
警告 與 Sun ONE Web Server 6.0 不同,版本 6.1 未提供檢查搜尋結果的功能。由於潛在的安全模型和安全範圍的數量很多,因此無法透過搜尋應用程式執行安全檢查及過濾結果。伺服器管理員負責確定使用相應的安全機制來保護內容。
Sun ONE Web Server 6.1 支援多文件搜尋。可以為不同格式的文件 (例如 HTML、ASCII 和 PDF) 建立索引,並依該索引進行搜尋。
在 Sun ONE Web Server 6.1 中,已使用新的搜尋引擎取代了先前發行版本中使用的搜尋引擎。因此,從 Web 伺服器的先前版次遷移到 Sun ONE Web Server 6.1 時,不會遷移現有搜尋集合和索引。
為虛擬伺服器啟用搜尋應用程式透過啟用 Sun ONE Web Server 隨附的搜尋應用程式,為虛擬伺服器啟用搜尋。使用管理介面來啟用搜尋。
確定已為包含要配置的虛擬伺服器之虛擬伺服器類別啟用了 Java 之後,請透過執行下列步驟來啟用搜尋:
為虛擬伺服器停用搜尋應用程式透過停用 Sun ONE Web Server 隨附的搜尋應用程式,為虛擬伺服器停用搜尋。使用管理介面來停用搜尋。
若要為虛擬伺服器停用搜尋,請執行下列步驟:
關於搜尋集合搜尋需要一個具備可搜尋資料的資料庫,使用者將依這些資料進行搜尋。由伺服器管理員建立此資料庫 (稱為集合),該資料庫為伺服器上文件建立索引並儲存關於這些文件的資訊。一旦伺服器管理員為全部或部分伺服器文件建立了索引,便可以使用諸如標題、建立日期和作者等資訊進行搜尋。
請注意以下關於集合的資訊:
本節包括下列主題:
建立集合
集合是經由管理介面來建立和管理的。可以透過指定要編入索引的文件來建立新集合。
若要建立新集合,請執行下列步驟:
- 選取要在其中建立集合的虛擬伺服器,然後按一下 [管理] 按鈕。
- 選取 [搜尋] 標籤,然後按一下 [建立集合] 連結。
- 輸入下列資訊:
- 要建立索引的目錄。從下拉式清單,選取在集合中建立文件索引所使用的目錄。僅會列出該虛擬伺服器中可見的目錄。
若要檢視目錄內容,請按一下 [檢視]。如果選取的目錄包含子目錄,則這些子目錄將在 [View directory_name] 頁面上列出。若要選取將要建立索引的目錄,請按一下 [索引]。若要檢視目錄,請按一下資料夾。
為了將目錄增加至可建立索引的目錄清單,必須首先建立一個附加文件目錄。如需更多資訊,請參閱設定附加文件目錄。
- 集合名稱。輸入集合的名稱。
- 顯示名稱。(可選) 在搜尋查詢頁面中將顯示為集合名稱。如果您未指定顯示名稱,則集合名稱將作為顯示名稱。
- 描述。(可選) 輸入描述新集合的文字。
- 是否包含子目錄?如果選取 [否],將不會為所選目錄之子目錄中的文件建立索引。預設值為 [是]。
- 型樣。指定萬用字元以選取要建立索引的檔案。如需有關萬用字元的更多資訊,請參閱資源挑選器中使用的萬用字元。
- 預設編碼。為要建立索引的文件指定字元編碼。預設值為「ISO-8859-1」。索引引擎嘗試從嵌入式元標籤確定 HTML 文件的編碼。如果未指定,則使用預設編碼。
- 按一下 [確定]。
此作業會在以下位置具有指定名稱的新集合:
<instance-root>/collections/<vs-id>/<collection-name>
同時也會在 server.xml 檔案中建立適當的 SEARCHCOLLECTION 項目。
配置集合
建立集合後,您可以修改它的某些設定。這些設定儲存在 server.xml 檔案中。重新配置集合時,server.xml 檔案會更新以反映您的變更。
您應當避免對集合設定進行不必要的變更。
若要重新配置現有集合,請執行下列步驟:
- 選取包含要配置的集合之虛擬伺服器,然後按一下 [管理] 按鈕。
- 選取 [搜尋] 標籤,然後按一下 [配置集合] 連結。
- 從 [集合] 下拉式清單,選取要配置的集合,然後按一下 [移至]。
- 您可以編輯所選集合的以下資訊:
- 顯示名稱。(可選) 在搜尋查詢頁面中將顯示為新集合的名稱。
- 描述。(可選) 編輯集合的文字描述。
- 文件 URI。編輯搜尋集合文件根的 URI。
備註 除非您在 [附加文件目錄] 頁面中變更了文件根的 URI 對映,否則請勿變更文件 URI。如需更多資訊,請參閱設定附加文件目錄。
- 啟用。選取 [是] 以啟用。如果選取 [否],搜尋查詢頁面上將不會出現集合。
- 按一下 [確定]。
這將重新配置集合並修改 server.xml 檔案中適當的 SEARCHCOLLECTION 項目。
更新集合
您可以在建立集合之後增加或移除檔案。只能增加建立集合期間所指定目錄下的文件。如果要移除文件,則只會從集合移除檔案項目及其複合資料。實際檔案本身不會從檔案系統中移除。
若要更新集合,請執行下列步驟:
- 選取包含要更新的集合之虛擬伺服器,然後按一下 [管理] 按鈕。
- 選取 [搜尋] 標籤,然後按一下 [更新集合] 連結。
- 從 [集合] 下拉式清單,選取要更新的集合。
- 文件
- 您可以更新所選集合的以下資訊:
- 是否包含子目錄?如果選取 [否],將不會為所選目錄之子目錄中的文件建立索引。預設值為 [是]。
- 型樣。指定萬用字元以選取要建立索引或要從集合中移除的檔案。如需有關萬用字元的更多資訊,請參閱資源挑選器中使用的萬用字元。
- 預設編碼。為要建立索引的文件指定字元編碼。預設值為「ISO-8859-1」。索引引擎嘗試從嵌入式元標籤確定 HTML 文件的編碼。如果未指定,則使用預設編碼。
- 按一下 [增加文件] 以將文件增加至索引,或按一下 [移除文件] 以移除適當的索引項目。
移除集合
您可以移除已建立的集合。集合被刪除後將不再顯示於搜尋查詢頁面上,並且與集合相關聯的所有配置和索引檔案也將被刪除。構成集合的實際文件並未從檔案系統中刪除,而只是刪除了它們在集合中的索引項目。
若要移除集合,請執行下列步驟:
- 選取包含要移除的集合之虛擬伺服器,然後按一下 [管理] 按鈕。
- 選取 [搜尋] 標籤,然後按一下 [維護集合] 連結。
- 從 [集合] 下拉式清單,選取要移除的集合。
- 按一下 [移除集合] 按鈕。
備註 移除集合之後,也就移除了為集合排程的維護。如需關於排程的維護之資訊,請參閱增加排程的集合維護。
維護集合
您可能希望定期對集合進行維護。除非您經常為集合建立索引並經常更新集合,否則沒有必要定期維護集合。您可以執行以下作業:
為集合重新建立索引
您可以為已建立的集合重新建立索引。如果在建立集合之後修改了任何文件,則會重新為該集合建立索引。為集合重新建立索引不會將任何新內容增加至集合,而是更新集合的現有內容。如果文件已經不在伺服器檔案系統中,但是仍存在其索引項目,則會移除這些項目。
若要為集合重新建立索引,請執行下列步驟:
增加排程的集合維護
您可以對定期在集合上執行的維護工作進行排程。可以排程的工作是重新建立索引和更新。可以使用管理介面為特定集合進行工作排程。您可以指定以下內容:
若要增加集合的定期維護,請執行下列步驟:
- 選取您要進行維護排程的集合,然後按一下 [增加排程的維護] 連結。
- 輸入下列資訊:
- 工作。選取要自動執行的工作。選項為 [重新建立索引] 和 [更新]。
如果選取 [更新],您必須輸入以下資訊:
- 型樣。指定萬用字元以選取要建立索引的檔案。如需有關萬用字元的更多資訊,請參閱資源挑選器中使用的萬用字元。
- 預設編碼。為要建立索引的文件指定字元編碼。預設值為「ISO-8859-1」。索引引擎嘗試從嵌入式元標籤確定 HTML 文件的編碼。如果未指定,則使用預設編碼。
- 按一下 [確定]。
編輯排程的集合維護
如果需求發生變更,您可以變更排程的集合維護特性。例如,如果您記得自己的網站最可能的更新日期,可能會決定重新對維護進行排程。
若要變更排程的集合維護,請執行下列步驟:
移除排程的集合維護
如果不再需要排程的集合維護,您可以取消它。
若要取消排程的維護,請執行下列步驟:
執行搜尋使用者主要關心在搜尋集合中查詢資料,然後取得作為查詢結果的文件清單。隨同 Sun ONE Web Server 安裝的搜尋 Web 應用程式提供了預設的搜尋查詢和搜尋結果頁面。可以直接使用這些頁面,或使用 JSP 標籤集對這些頁面進行自訂 (如自訂搜尋頁面中所述)。
使用者可以依伺服器管理員所建立的集合進行搜尋。他們可以執行以下作業:
伺服器管理員必須為使用者提供存取虛擬伺服器搜尋查詢頁面所需的 URL。
警告 與 Sun ONE Web Server 6.0 不同,版本 6.1 未提供檢查搜尋結果的功能。由於潛在的安全模型和安全範圍的數量很多,因此無法透過搜尋應用程式執行安全檢查及過濾結果。伺服器管理員負責確定使用相應的安全機制來保護內容。
搜尋頁面一般使用者可用於存取搜尋功能的預設 URL 為:
http://<server-instance>:port number/search
範例:
http://plaza:8080/search
終端使用者呼叫此 URL 時會啟動 [搜尋] 頁面 (一個 Java Web 應用程式)。
下圖顯示了預設的 [搜尋] 介面:
如「自訂搜尋頁面」中所述,您可以使用 JSP 標籤集來自訂此頁面。
進行查詢搜尋查詢頁面用於依集合進行搜尋。使用者輸入一組關鍵字和可選查詢運算子,然後會收到顯示在瀏覽器內網頁上的結果。結果頁面包含伺服器上匹配搜尋條件的文件連結。
若要進行查詢,請執行下列步驟:
如需更精細的搜尋,您可以使用 [進階搜尋] 頁面中提供的搜尋參數,如下節所述。
進階搜尋使用者可以透過增加微調關鍵字的運算子來增加搜尋的準確性。可以從 [進階搜尋] 頁面中選取這些選項。
下圖顯示了進階搜尋頁面:
若要進行進階搜尋查詢,請執行下列步驟:
檢視搜尋結果搜尋結果將顯示在使用者瀏覽器內的網頁上,該頁面包含與伺服器上匹配搜尋條件之文件的 HTML 超連結。依預設,每個頁面顯示 10 個記錄 (命中項),這些記錄基於相關性依降序排序。每個記錄都列出諸如檔名、大小、建立日期等資訊。還會亮顯相符的文字。
備註 伺服器管理員可以自訂此搜尋結果頁面,如自訂搜尋頁面中所述。
自訂搜尋頁面Sun ONE Web Server 包含一個提供基本搜尋查詢和搜尋結果頁面的預設搜尋應用程式。可以直接使用這些網頁,也可以對其進行自訂以滿足特定需要。這種自訂可以像使用其他標誌重新設置網頁一樣簡單,也可以像變更搜尋結果顯示順序一樣複雜。
與在 Sun ONE Web Server 6.0 中不同,現在不再使用型樣檔案來自訂搜尋介面。而是使用 Sun ONE Web Server 6.1 中隨附的一組 JSP 標籤檔案庫來進行自訂。預設的搜尋應用程式提供了 JSP 範例,這些 JSP 範例展示了如何使用搜尋標籤庫來建立自訂搜尋介面。您可以查看 /bin/https/webapps/search 中作為範例應用程式的預設搜尋應用程式,該應用程式展示了可自訂搜尋標籤的用法。
預設的搜尋介面由以下四個主要的元件構成:標頭、註腳、查詢表單和結果。
僅透過變更標籤的屬性值,便可以輕鬆地自訂這些基本元素。可以使用標籤檔案庫完成更為詳細的自訂。
本節包括下列主題:
搜尋介面元件
搜尋介面包含以下元件:
標頭
標頭包括標誌、標題和簡短描述。
註腳
註腳包含版權資訊。
表單
查詢表單包含一組表示搜尋集合的核取方塊、一個查詢輸入方塊以及提交和說明按鈕。
結果
依預設,每頁列出 10 個結果記錄。對於每個記錄,將顯示以下資訊:標題、段落、大小、建立日期和 URL。段落是頁面中亮顯匹配文字的一個短片段。
自訂搜尋查詢頁面
查詢表單包含一個搜尋集合的核取方塊清單、一個查詢輸入方塊和一個提交按鈕。此表單是使用具有以下預設值的 <s1ws:form> 標籤以及 <collElem>、<queryBox> 和 <submitButton> 標籤建立的:
<s1ws:form>
<s1ws:collElem />
<s1ws:queryBox /> <s1ws:submitButton />
</s1ws:form>
可以將查詢表單放到頁面的任意位置:中間、邊框等等。也可以用不同格式顯示查詢表單,例如使用一個橫框,其中集合選取方塊、查詢字串輸入方塊以及 [提交] 按鈕水平排列;或顯示為一個區段,其中集合顯示為核取方塊,而查詢輸入方塊和 [提交] 按鈕位於其下方。
以下範例顯示了如何使用 <searchForm> 標籤集來建立不同格式的查詢表單。
以水平框格式
以下範例碼將建立一個表單,其中包含一個全部集合的選取方塊、一個查詢輸入方塊和一個提交按鈕,均排在一列。
<s1ws:form>
<table cellspacing="0" cellpadding="3" border="0">
<tr class="navBar">
<td class="navBar"><s1ws:collElem type=”select” /></td>
<td class="navBar">
<s1ws:querybox size="30" />
<s1ws:submitButton class="navBar" style="padding:0px; margin:0px; width:50px" />
</td>
</tr>
</table>
</s1ws:form>
以提要欄位區段格式
您可以建立一個表單區段,其中表單元素排列在一個提要欄位中,表單區段的標題為「搜尋」,使用的格式與邊框中其他項的格式相同。這種排序效果如下圖所示:
在下面給出的範例碼中,表單內文包含三個排成一行的核取方塊,列出了可用的搜尋集合。查詢輸入方塊和 [提交] 按鈕位於下方:
<s1ws:searchForm>
<table>
<!--... other sidebar items ... -->
<tr class="Title"><td>Search</td></tr>
<tr class="Body">
<td>
<table cellspacing="0" cellpadding="3" border="0">
<tr class="formBlock">
<td class="formBlock"> <s1ws:collElem type="checkbox" cols="1" values="1,0,1,0" /> </td>
</tr>
<tr class="formBlock">
<td class="formBlock"> <s1ws:querybox size="15" maxlength="50" /> </td>
</tr>
<tr class="formBlock">
<td class="formBlock"> <s1ws:submitButton class="navBar" style="padding:0px; margin:0px; width:50px" /> </td>
</tr>
</table>
</td>
</tr>
</table>
</s1ws:searchForm>
自訂搜尋結果頁面
搜尋結果的產生程序如下:
僅透過變更標籤的屬性值,您便可以自訂搜尋結果頁面。
以下範例碼以標題列開始,隨後顯示一些指定的記錄,最後顯示導覽列。標題列包含搜尋中使用的查詢字串以及傳回的全部記錄範圍 (例如 1 - 10)。對於每個記錄,記錄部分顯示了與檔案連結的標題、最多三個亮顯關鍵字的段落、URL、建立日期以及文件大小。
在該部分的末尾處,導覽列提供了與上一頁和下一頁的連結,以及與目前頁之前和之後八個其他頁面的直接連結。
<s1ws:formAction />
<s1ws:formSubmission success="true" >
<s1ws:search scope="page" />
<!--search results-->
(...html omitted...)
<s1ws:resultStat formId="test" type="total" /></b> Results Found, Sorted by Relevance</span></td><td>
<span class="body"><a href="/search/search.jsp?">Sort by Date</a></span></td>
<td align="right"><span class="body">
<s1ws:resultNav formId="test" type="previous" caption="<img border=0 src=\"images/arrow-left.gif\" alt=\"Previous\">" />
<s1ws:resultStat formId="test" type="range" />
<s1ws:resultNav formId="test" type="next" caption="<img border=0 src=\"images/arrow-right.gif\" alt=\"Next\">" />
<!img alt="Next" src="images/arrow-right.gif" border="0" WIDTH="13" HEIGHT="9">
(...html omitted...)
<table border=0>
<s1ws:resultIteration formId="test" start="1" results="15">
<tr class=body>
<td valign=top>
<s1ws:item property='number' />.
</td>
<td>
<b><a href="<s1ws:item property='url' />"><s1ws:item property='title' /></a></b>
<br>
<s1ws:item property='passages' />
<font color="#999999" size="-2">
<s1ws:item property='url' /> -
<s1ws:item property='date' /> -
<s1ws:item property='size' /> KB
</font><br><br>
</td>
</tr>
</s1ws:resultIteration>
</table>
(...html omitted...)
<s1ws:resultNav formId="test" type="previous" />
<s1ws:resultNav formId="test" type="full" offset="8" />
<s1ws:resultNav formId="test" type="next" />
(...html omitted...)
</s1ws:formSubmission>
下圖顯示了自訂的搜尋結果頁面:
透過操控標籤和修改 HTML,可以輕鬆地自訂基本搜尋結果介面。例如,可以將導覽列複製並放到搜尋結果前面。使用者也可以選擇顯示或不顯示搜尋記錄的任何特性。
除了與表單一起使用外,<search>、<resultIterate> 和相關標籤還可用於列出的特定主題。以下範例碼列出了某個網站上前十篇有關 Java Web 服務的文章。
<s1ws:search collection="Articles" query="Java Web Services" />
<table cellspacing="0" cellpadding="3" border="0">
<tr class="Title"><td>Java Web Services</td></tr>
</table>
<table cellspacing="0" cellpadding="3" border="0">
<s1ws:resultIteration>
<tr>
<td><a href="<s1ws:item property='URL' />"> <s1ws:item property='Title'/></a></td>
</tr>
</s1ws:resultIteration>
</table>
在單獨的頁面中自訂表單和結果
如果需要將表單頁面和結果頁面分開,您必須使用 <form> 標籤集建立表單頁面,並使用 <formAction> 標籤集建立結果頁面。
需要在結果頁面中增加與表單頁面的連結以使頁面銜接順暢。
標籤慣例
請注意以下標籤慣例:
標籤規範
Sun ONE Web Server 包括一組 JSP 標籤,這些標籤可以用於自訂搜尋介面中的搜尋查詢和搜尋結果頁面。
如需可以用於自訂搜尋頁面的完整 JSP 標籤清單,請參閱「Sun ONE Web Server 6.1 Programmer's Guide to Web Applications」。