Sun Java System Web Server 7.0 管理員指南

第 12 章 使用搜尋集合

伺服器包含搜尋功能,允許使用者在伺服器上搜尋文件並將搜尋結果顯示在網頁上。伺服器管理員依據使用者要搜尋的文件 (稱為集合) 來建立文件索引,還可以自訂搜尋介面以滿足使用者的需要。

如需有關查詢搜尋集合的更多資訊,請參閱搜尋線上說明

關於搜尋

在安裝 Sun Java System Web Server 期間,搜尋功能會與其他 Web 元件一同安裝。搜尋是在虛擬伺服器層級而不是伺服器實例層級上配置和管理的

透過管理主控台中 [虛擬伺服器] 標籤下的 [搜尋] 標籤,您可以執行以下作業:

從管理介面取得的資訊儲存在 <server-root>/config/server.xml 檔案中,並在該檔案的 VS 元素內進行對映。

伺服器管理員可以自訂搜尋查詢和搜尋結果頁面。此舉可將公司標誌增加到頁面中以改成自己的品牌,或變更顯示搜尋結果的方式。在先前發行版本中,上述作業是透過使用式樣檔案來完成的。

沒有針對搜尋的全域「開啟」或「關閉」功能。而是提供了一個預設的搜尋 Web 應用程式,然後在特定虛擬伺服器上啟用或停用該應用程式。此搜尋應用程式提供了用於查詢集合和檢視結果的基本網頁。此搜尋應用程式包含 JSP 範例,說明如何使用搜尋標籤程式庫來建立自訂搜尋介面。


備註 –

Sun Java System Web Server 不提供搜尋結果的存取檢查。由於潛在的安全性模型及範圍的數量很多,因此無法透過搜尋應用程式執行安全檢查及篩選結果。伺服器管理員負責確保使用相應的安全機制來保護內容。


配置搜尋特性

透過啟用伺服器隨附的搜尋應用程式,為虛擬伺服器啟用搜尋。


備註 –

必須首先啟用 Java Web 容器,然後才能啟用搜尋。


確定已為您要配置的虛擬伺服器啟用 Java 後,請執行以下步驟來啟用搜尋:

  1. 按一下 [配置] 標籤

  2. 從配置清單中選取配置。

  3. 按一下 [虛擬伺服器] 標籤

  4. 從虛擬伺服器清單中選取虛擬伺服器。

  5. 按一下 [搜尋] 標籤

  6. [搜尋應用程式] 區段中,按一下 [已啟用] 核取方塊,以啟用搜尋應用程式。

其他可以配置的參數如下所示:


備註 –

使用 CLI

若要透過 CLI 設定搜尋特性,請在 CLI 中執行以下指令:


wadm> set-search-prop --user=admin --password-file=admin.pwd --host=serverhost
--port=8888 --no-ssl --rcfile=null --config=config1 --vs=config1_vs_1
enabled=true max-hits=1200

請參閱 CLI 參照 set-search-prop(1)


配置搜尋集合

搜尋需要一個具備可搜尋資料的資料庫,使用者將依這些資料進行搜尋。伺服器管理員將建立此資料庫 (稱為集合),該資料庫會為伺服器上的文件建立索引並儲存關於這些文件的資訊。伺服器管理員為全部或部分伺服器文件建立索引後,便可以使用標題、建立日期和作者等資訊進行搜尋。


備註 –

關於搜尋集合:


支援的格式

您可以為以下格式的文件建立索引,然後進行搜尋。

  1. HTML 文件— .html 和 .htm

  2. ASCII 一般文字— .txt

  3. PDF

增加搜尋集合

若要增加新的集合,請執行以下作業:

  1. 按一下 [配置] 標籤

  2. 從配置清單中選取配置。

  3. 按一下 [虛擬伺服器] 標籤

  4. 從虛擬伺服器清單中選取虛擬伺服器。

  5. 按一下 [搜尋] 標籤

  6. [搜尋集合] 區段下,按一下 [增加搜尋集合] 按鈕,以增加新的搜尋集合。

下節說明頁面中用於建立新搜尋集合的欄位:

  1. 提供搜尋集合資訊

    1. 集合名稱—輸入搜尋集合的唯一名稱。


      備註 –

      多位元組字元不得做為集合名稱。


    2. 顯示名稱 — (可選) 將在搜尋查詢頁面中顯示為集合名稱。如果您未指定顯示名稱,則集合名稱將做為顯示名稱。

    3. 說明 — (可選) 輸入說明新集合的文字。

    4. 路徑 — 您可以在預設位置建立集合,也可以提供用來儲存集合的有效路徑。

  2. 提供索引資訊

    1. 要建立索引的目錄 — 輸入目錄名稱,以針對目錄中的文件建立索引至集合。僅能為在此虛擬伺服器中可見的目錄建立索引。

    2. 子目錄—輸入將在集合中建立索引的文件子目錄。子目錄路徑應相對於之前所指定的目錄路徑。

    3. 式樣 — 指定萬用字元以選取要建立索引的檔案。

      謹慎使用萬用字元式樣,以確保僅為特定檔案建立索引。例如指定 *.* 甚至可能會為可執行檔和 Perl 程序檔建立索引。

    4. 子目錄—已啟用/已停用。如果您選取此選項,還會為所選目錄之子目錄中的文件建立索引。這是預設動作。

    5. 預設文件編碼

      集合中的文件不限於使用單一語言/編碼。每次增加文件時,只能指定單一編碼;但是,下次將文件增加至集合時,您可以選取其他預設編碼。

  3. 步驟 3:檢視摘要

    1. 檢視摘要並按一下 [完成] 按鈕,以增加新的集合。


備註 –

使用 CLI

若要透過 CLI 增加搜尋集合,請執行以下指令。


wadm> create-search-collection --user=admin --password-file=admin.pwd 
--host=serverhost --port=8989 --config=config1 --vs=config1_vs_1 --uri=/search_config1 
--document-root=../docs searchcoll

請參閱 CLI 參照 create-search-collection(1)


刪除搜尋集合

若要刪除搜尋集合,請執行以下作業:

  1. 按一下 [配置] 標籤

  2. 從配置清單中選取配置。

  3. 按一下 [虛擬伺服器] 標籤

  4. 從虛擬伺服器清單中選取虛擬伺服器。

  5. 按一下 [搜尋] 標籤

  6. [搜尋集合] 區段中,選取集合名稱並按一下 [刪除] 按鈕以刪除該集合。


備註 –

使用 CLI

若要透過 CLI 刪除搜尋集合,請執行以下指令。


wadm> delete-search-collection --user=admin --password-file=admin.pwd 
--host=serverhost --port=8989 --config=config1 --vs=config1_vs_1 searchcoll

請參閱 CLI 參照 delete-search-collection(1)


排程集合更新

您可以排程定期對集合執行維護作業。可排定的作業包括重新建立索引和更新。管理介面用於為特定集合排程作業。您可以指定以下內容:

若要為集合進行事件排程,請執行以下作業:

  1. 按一下 [配置] 標籤

  2. 從配置清單中選取配置。

  3. 按一下 [虛擬伺服器] 標籤

  4. 從虛擬伺服器清單中選取虛擬伺服器。

  5. 按一下 [搜尋] 標籤

  6. 按一下 [排定的事件] 標籤

  7. [搜尋事件] 標籤下,按一下 [新增] 按鈕

下表說明了 [新增搜尋事件排程] 頁面中的欄位:

表 12–1 欄位說明 > 新增搜尋事件排程

欄位

說明

集合

從下拉式清單中選取您要為其排定維護作業的集合。 

事件

  1. 重新為集合建立索引 — 此排定的事件將在指定時間重新為指定的集合建立索引。

  2. 更新集合 — 您可以在建立集合之後增加或移除檔案。只能在建立集合時指定的目錄中增加文件。如果要移除文件,只有這些檔案的項目及其中介資料會從集合中移除。實際檔案本身不會從檔案系統中移除。此排定的事件將在指定時間更新集合。

  3. 式樣 — 指定萬用字元以選取要建立索引的檔案。

  4. 包括子目錄 — 如果選取此選項,則也將為所選目錄的子目錄中的文件建立索引。這是預設動作。

  5. 編碼 — 為要建立索引的文件指定字元編碼。預設為 ISO-8859-1。索引引擎嘗試根據嵌入式中介標記確定 HTML 文件的編碼。如果未指定,則使用預設編碼。

時間

配置的事件啟動時間。從下拉式方塊中選取小時和分鐘值。 

每天 — 每天在指定的時間啟動指定的事件。

特定日期 — 在特定日期啟動指定的事件。

1. — 指定星期日到星期六之間的任一天。

2. 日期 — 將某月的任一天 (從 1 日到 31 日) 指定為逗號分隔的項目,例如 4,23,9。

特定月份 — 在特定時間和月份啟動指定的事件。指定 1 月至 12 月之間的月份。

間隔

在此時間段之後啟動指定的事件。 

1. 間隔小時數 — 從下拉式方塊中選取小時數。

2. 間隔秒數 — 從下拉式方塊中選取秒數。

   

執行搜尋

使用者主要是在搜尋集合中查詢資料,然後取得作為查詢結果的文件清單。與 Sun Java System Web Server 一同安裝的搜尋 Web 應用程式可提供預設的搜尋查詢和搜尋結果頁面。這些頁面可以直接使用,或者如「自訂搜尋頁面」所述,使用一組 JSP 標籤來自訂。

使用者可以依伺服器管理員所建立的集合進行搜尋。他們可以執行以下作業:

伺服器管理員必須為使用者提供存取虛擬伺服器搜尋查詢頁面所需的 URL。

搜尋頁面

一般使用者可用於存取搜尋功能的預設 URL 為:

http://<伺服器實例 >:連接埠號/search

範例:

http://plaza:8080/search

一般使用者呼叫此 URL 時,會啟動 [搜尋] 頁面 (一個 Java Web 應用程式)。


備註 –

如需有關進行基本搜尋和進階搜尋的詳細資訊 (包括關鍵字和可選查詢運算子的相關資訊),請參閱搜尋引擎提供的線上說明。若要存取此資訊,請按一下 [搜尋] 頁面上的 [說明] 連結。


進行查詢

搜尋查詢頁面用於依集合進行搜尋。使用者輸入一組關鍵字和可選查詢運算子,然後會收到顯示在瀏覽器內網頁上的結果。結果頁面中包含伺服器上符合搜尋條件的文件連結。


備註 –

如「自訂搜尋頁面」中所述,伺服器管理員可以自訂此搜尋查詢頁面。。


若要進行查詢,請執行下列步驟:

Procedure進行查詢

  1. 在瀏覽器的位置列中輸入以下格式的搜尋 Web 應用程式 URL,即可存取該應用程式:

    http://<伺服器實例>:連接埠號/search

  2. 在顯示的搜尋查詢頁面中,核取表示要在 [搜尋] 欄位中搜尋的集合之核取方塊。

  3. 鍵入幾個用於描述查詢的文字並按下 Enter 鍵 (或按一下 [搜尋] 按鈕),以取得相關網頁的清單。

    如需更為精確的搜尋,您可以使用 [進階搜尋] 頁面中提供的搜尋參數,如下節所述。

進階搜尋

使用者可以透過增加可精確化其關鍵字的運算子來增加搜尋的準確性。可從 [進階搜尋] 頁面選取這些選項。

若要進行進階搜尋查詢,請執行下列步驟:

Procedure進行進階搜尋查詢

  1. 在瀏覽器的位置列中輸入以下格式的搜尋 Web 應用程式 URL,即可存取該應用程式:

    http://<伺服器實例>:連接埠號/search

  2. 按一下 [進階] 連結。

  3. 輸入以下任一或全部資訊:

    • [搜尋]。選取要搜尋的集合。

      • [尋找]。支援以下四個選項:

        • 所有文字。尋找包含 [尋找] 欄位中指定的所有關鍵字的頁面。

        • 任意文字。尋找包含 [尋找] 欄位中指定的任何關鍵字的頁面。

        • 精確片語。尋找符合 [尋找] 欄位中使用的精確片語的頁面。

        • 段落搜尋。在擷取到的頁面中反白顯示包含關鍵字或詞的段落。

        排除文字。搜尋將排除包含指定文字的網頁。

      • 「標題包含/不包含」。僅限搜尋標題中包含指定關鍵字的頁面。

      • [Since]。僅限搜尋其索引建於所選時段內的網頁。

文件欄位

Sun Java(TM) System Web Server 可維護文件的索引。該索引包含每個文件的項目。每個索引項目均包含一個或多個欄位,例如 Title、Author 及 URL。可將查詢限定至特定文件欄位,僅當文件符合指定欄位中的條件時,才可找到該文件。

例如,如果只是搜尋 Einstein,則只要 [Title]、[Author] 或 [Keywords] 欄位中有一個包含文字 Einstein,便會找到該文件。這樣,有關 Einstein 的文件、參考 Einstein 的文件以及由 Einstein 撰寫的文件都將包括在內。但是,如果您指定 Author = "Albert Einstein",則會僅尋找由 Albert Einstein 撰寫的文件。

依預設,可以搜尋的索引欄位如下︰

  1. 作者— 建立文件的一個作者、多個作者或組織,以 <author> 中介標記指定。

  2. 關鍵字—以 <keywords> 中介標記指定的關鍵字。

  3. 日期—最後一次編輯或修改此文件的日期。

  4. 標題—文件的標題,以 HTML <title> 標記指定。

搜尋查詢運算子

如需有關搜尋查詢運算子的詳細清單,請參閱「管理主控台搜尋線上說明」。

檢視搜尋結果

搜尋結果將顯示在使用者瀏覽器中的 Web 頁面上,該頁面包含伺服器上符合搜尋條件的文件的 HTML 超連結。依預設,每個頁面顯示 10 條記錄 (符合項目),這些記錄根據關聯依降序排序。每條記錄都會列出諸如檔案名稱、大小、建立日期等資訊。並且還會反白顯示相符的文字。

自訂搜尋頁面

Sun Java System Web Server 包含一個預設搜尋應用程式,可提供基本的搜尋查詢和搜尋結果頁面。可以直接使用這些網頁,也可以進行自訂以滿足特定需要。這種自訂可以像使用其他標誌重新設置網頁一樣簡單,也可以像變更搜尋結果顯示順序一樣複雜。

預設的搜尋應用程式提供 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\\">" />
        &nbsp;<s1ws:resultStat formId="test" type="range" />
        &nbsp;<s1ws:resultNav formId="test" type="next" caption="<img border=0 src=\\"images/arrow-right.gif\\" alt=\\"Next\\">" />
        &nbsp; <!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’ />.&nbsp;&nbsp;
                </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 Java System Web Server 包括一組 JSP 標籤,可用於自訂搜尋介面中的搜尋查詢和搜尋結果頁面。

如需可用於自訂搜尋頁面的完整 JSP 標籤清單,請參閱「Sun Java System Web Server 7.0 Developer’s Guide to Web Applications」。