Sun ONE ロゴ      前へ      目次      索引      次へ     

Sun ONE Web Server 6.1 管理者ガイド

第 18 章
検索機能の使い方

Sun ONE Web Server 6.1 には、ユーザーがサーバー上のドキュメントを検索し、結果を Web ページに表示できる検索機能が用意されています。サーバー管理者はドキュメントのインデックスを作成し、ユーザーはこのインデックス (コレクションと呼ぶ) に対して検索を行います。また、サーバー管理者はユーザーのニーズに合わせて検索インタフェースをカスタマイズすることができます。

この章には、次の内容が記述されています。


検索について

Sun ONE Web Server のインストール時に、他の Web コンポーネントとともに検索機能もインストールされます。Sun ONE Web Server 6.0 の場合と同様に、検索機能はサーバーインスタンスレベルではなく、仮想サーバーレベルで設定、管理されます。

各仮想サーバーでの検索機能の設定には、仮想サーバーマネージャの「Search」タブを使用します。このタブでは、次の処理を実行できます。

管理インタフェースで取得された情報は、VS 要素内でマッピングされている <server-root>/config/server.xml ファイルに格納されます。

サーバー管理者は、検索クエリページと検索結果ページをカスタマイズできます。これには、企業ロゴによるページの商標変更や、検索結果ページの表示方法の変更などが含まれます。従来のリリースでは、パターンファイルを使ってこれらの変更を行なっていました。Sun ONE Web Server 6.1 では、パターンファイルはサポートされていません。その代わりに、製品に含まれる JSP タグライブラリセットを使ってカスタマイズを行います。これらのライブラリは、パターンファイルと同様の機能を提供します。検索インタフェースのカスタマイズについては、「検索ページのカスタマイズ」を参照してください。

従来のリリースとは異なり、検索機能をグローバルに「オン」、「オフ」することはできません。その代わりにデフォルトの検索 Web アプリケーションが提供され、特定の仮想サーバーで検索機能を有効化または無効化します。この検索アプリケーションは、コレクションをクエリ送信し、結果を表示するための基本 Web ページを提供します。検索アプリケーションには、検索タグライブラリを使用して検索インタフェースをカスタマイズする方法を示すサンプル JSP が含まれます。


警告

Sun ONE Web Server 6.0 とは異なり、バージョン 6.1 は検索結果に対してアクセスチェックを行いません。セキュリティモデルおよびレルムの数には限りがないため、検索アプリケーション内でセキュリティチェックを行い、結果をフィルタリングすることは不可能です。コンテンツを保護するために適切なセキュリティメカニズムを導入することは、サーバー管理者の責任となります。


Sun ONE Web Server 6.1 は、複数ドキュメント検索をサポートしています。形式が異なるドキュメント (HTML、ASCII、PDF など) のインデックスを作成し、それに対して検索を行うことができます。


Sun ONE Web Server 6.1 は、Linux プラットフォームでは複数ドキュメント形式の検索をサポートしていません。


Sun ONE Web Server 6.1 では、従来のリリースで使用していた検索エンジンではなく、新しい検索エンジンが採用されました。このため、従来のリリースの Web Server から Sun ONE Web Server 6.1 に移行しても、既存の検索コレクションとインデックスは移行されません。


仮想サーバーでの検索アプリケーションの有効化

仮想サーバーで検索を有効化するには、Sun ONE Web Server に含まれる検索アプリケーションを有効にします。検索の有効化には、管理インタフェースを使用します。


検索を有効にするには、Java Web コンテナが有効になっている必要があります。


設定する仮想サーバーを含む仮想サーバークラスで Java が有効であることを確認したら、次の手順を実行して検索を有効にします。

  1. 検索を有効にする仮想サーバーを選択し、「Manage」ボタンをクリックします。
  2. 「Search」タブを選択し、「Search Configuration」リンクをクリックします。
  3. 次の情報を入力します。
    • Max Hits: 検索クエリで検索される最大結果数を指定する
    • URI: カスタム検索アプリケーションを使用する場合は、ここに URI を指定する。デフォルトの検索アプリケーションを使用する場合は、値を指定する必要はない
    • Path: カスタム検索アプリケーションを使用する場合は、ここにパスを指定する。デフォルトの検索アプリケーションを使用する場合は、値を指定する必要はない
    • Enabled: デフォルトの検索アプリケーションを有効にするには、このチェックボックスを選択する
  4. 「OK」をクリックします。


仮想サーバーでの検索アプリケーションの無効化

仮想サーバーで検索を無効にするには、Sun ONE Web Server に含まれる検索アプリケーションを無効にします。検索の無効化には、管理インタフェースを使用します。

仮想サーバーで検索を無効にするには、次の手順を実行します。

  1. 検索を無効にする仮想サーバーを選択し、「Manage」ボタンをクリックします。
  2. 「Search」タブを選択し、「Search Configuration」リンクをクリックします。
  3. 「Enabled」チェックボックスの選択を解除します。
  4. 「OK」をクリックします。


検索コレクションについて

検索を行うには、ユーザーが検索する検索可能なデータのデータベースが必要です。このデータベースはコレクションと呼ばれ、サーバー管理者によって作成されます。コレクションには、サーバー上のドキュメントのインデックスを作成し、ドキュメントに関する情報を格納します。サーバー管理者がサーバー上のすべてまたは一部のドキュメントのインデックスを作成すると、タイトル、作成日、作成者などの情報を検索で利用できるようになります。

コレクションについては、次の点に留意してください。

この節では、次の内容について説明します。

コレクションの作成

コレクションの作成と管理は、管理インタフェースから実行します。新しいコレクションを作成するときは、インデックスを作成するドキュメントを指定します。

新規コレクションを作成するには、次の手順を実行します。

  1. コレクションを作成する仮想サーバーを選択し、「Manage」ボタンをクリックします。
  2. 「Search」タブを選択し、「Create Collection」リンクをクリックします。
  3. 次の情報を入力します。
    • Directory to Index: ドキュメントのインデックスをコレクションに追加するディレクトリをドロップダウンリストから選択する。この仮想サーバーで表示できるディレクトリだけがリスト表示される
    • ディレクトリのコンテンツを表示するときは、「View」をクリックする。選択したディレクトリがサブディレクトリの場合、コンテンツは、「View directory_name」ページに表示される。インデックスを作成するディレクトリを選択するには、「Index」をクリックする。ディレクトリを表示するには、フォルダをクリックする

      インデックスを作成できるディレクトリのリストにディレクトリを追加するには、最初にドキュメントディレクトリを追加作成する必要がある。詳細は、「追加ドキュメントディレクトリの設定」を参照

    • Collection Name: コレクション名を入力する
    • Display Name: (オプション) この名前は、検索クエリページにコレクション名として表示される。表示名を指定しない場合は、コレクション名が表示される
    • Description: (オプション) 新しいコレクションを説明するテキストを入力する
    • Include Subdirectories?: 「No」を選択した場合、選択したディレクトリのサブディレクトリ内のドキュメントにインデックスは作成されない。デフォルトは「Yes」
    • Pattern: ワイルドカードを指定して、インデックスを作成するファイルを選択する。ワイルドカードについては、「リソースピッカーで使用するワイルドカード」を参照

    • 警告

      特定のファイルだけにインデックスが作成されるようにワイルドカードパターンを慎重に使用してください。たとえば、*.* と指定すると、実行可能ファイルや Perl スクリプトのインデックスまで作成されてしまう場合があります。


    • Default Encoding: インデックスを作成するドキュメントの文字エンコーディングを指定する。デフォルトは ISO-8859-1。インデックス作成エンジンは、埋め込まれているメタタグから HTML ドキュメントのエンコーディングを判断しようとする。エンコーディングが指定されていない場合、デフォルトのエンコーディングが使用される

      コレクション内のドキュメントの言語とエンコーディングは 1 つに制限されない。ドキュメントを追加するときに指定できるエンコーディングは 1 つだけだが、同じコレクションに次にドキュメントを追加するときは、異なるデフォルトエンコーディングを選択できる

  4. 「OK」をクリックします。

これにより、指定した名前の新しいコレクションが次の場所に作成されます。

<instance-root>/collections/<vs-id>/<collection-name>

また、適切な SEARCHCOLLECTION エントリが server.xml ファイルに作成されます。

コレクションの設定

コレクションを作成した後に、一部の設定を変更することができます。これらの設定は、server.xml ファイルに格納されます。コレクションを再設定すると、server.xml ファイルが更新され、変更内容が反映されます。

コレクションの設定に不必要な変更を加えることは避けてください。

既存のコレクションを再設定するには、次の手順を実行します。

  1. 設定するコレクションを含む仮想サーバーを選択し、「Manage」ボタンをクリックします。
  2. 「Search」タブを選択し、「Configure Collection」リンクをクリックします。
  3. 設定するコレクションを「Collection」ドロップダウンリストから選択し、「Go」をクリックします。
  4. 選択したコレクションについて、次の情報を編集できます。
    • Display Name: (オプション) この名前は、検索クエリページに新しいコレクション名として表示される
    • Description: (オプション) コレクションの説明テキストを編集する
    • Document URI: 検索コレクションのドキュメントルート URI を編集する

    • 「Additional Document Directories」ページでドキュメントルートの URI マッピングを変更していない限り、Document URI は変更しないでください。詳細は、「追加ドキュメントディレクトリの設定」を参照してください。


    • Enabled: 有効化するときは「Yes」を選択する。「No」を選択すると、検索クエリページにコレクションが表示されなくなる
  5. 「OK」をクリックします。

これによりコレクションが再設定され、server.xml ファイルの適切な SEARCHCOLLECTION エントリが変更されます。

コレクションの更新

コレクションの作成後に、ファイルを追加または消去することができます。ドキュメントは、コレクションの作成時に指定したディレクトリの下からしか追加できません。ドキュメントを消去しても、そのファイルのエントリとそのメタデータだけがコレクションから削除されます。実際のファイル自体は、ファイルシステムから削除されません。

コレクションを更新するには、次の手順を実行します。

  1. 更新するコレクションを含む仮想サーバーを選択し、「Manage」ボタンをクリックします。
  2. 「Search」タブを選択し、「Update Collection」リンクをクリックします。
  3. 更新するコレクションを「Collection」ドロップダウンリストから選択します。
  4. Docs
  5. 選択したコレクションについて、次の情報を更新できます。
    • Include subdirectories?: 「No」を選択した場合、選択したディレクトリのサブディレクトリ内のドキュメントにインデックスは作成されない。デフォルトは「Yes」

    • Include Subdirectories?: ドキュメントの追加だけに適用されます。


    • Pattern: ワイルドカードを指定してインデックスを作成するか、コレクションから消去するファイルを選択する。ワイルドカードについては、「リソースピッカーで使用するワイルドカード」を参照

    • 警告

      ドキュメントを追加するときは、特定のファイルのインデックスだけが作成されるようにワイルドカードパターンを慎重に使用してください。たとえば、*.* と指定すると、実行可能ファイルや Perl スクリプトのインデックスまで作成されてしまう場合があります。


    • Default Encoding: インデックスを作成するドキュメントの文字エンコーディングを指定する。デフォルトは ISO-8859-1。インデックス作成エンジンは、埋め込まれているメタタグから HTML ドキュメントのエンコーディングを判断しようとする。エンコーディングが指定されていない場合、デフォルトのエンコーディングが使用される

      コレクション内のドキュメントの言語とエンコーディングは 1 つに制限されない。ドキュメントを追加するときに指定できるエンコーディングは 1 つだけだが、同じコレクションに次にドキュメントを追加するときは、異なるデフォルトエンコーディングを選択できる

  6. インデックスを作成するドキュメントを追加するときは「Add Documents」をクリックします。適切なインデックスエントリを消去するときは、「Remove Documents」をクリックします。

  7. 追加できるドキュメントは、コレクションの作成時に指定したディレクトリに含まれるドキュメントだけです。


コレクションの削除

作成したコレクションを削除することができます。コレクションが削除されると、検索クエリページでユーザーが参照できなくなり、このコレクションに関連付けられたすべての設定ファイルとインデックスファイルが削除されます。コレクションを構成していた実際のドキュメントはファイルシステムから削除されず、コレクションに含まれるインデックスエントリだけが削除されます。

コレクションを削除するには、次の手順を実行します。

  1. 削除するコレクションを含む仮想サーバーを選択し、「Manage」ボタンをクリックします。
  2. 「Search」タブを選択し、「Maintain Collection」リンクをクリックします。
  3. 削除するコレクションを「Collection」ドロップダウンリストから選択します。
  4. 「Remove Collection」ボタンをクリックします。

  5. コレクションを削除すると、コレクションの保守スケジュールも削除されます。保守スケジュールについては、「コレクションの保守スケジュールの追加」を参照してください。



    ローカルファイルマネージャを使用してコレクションを削除しないでください。この方法で削除した場合、対応する設定ファイルが更新されません。


コレクションの保守

定期的に、コレクションの保守が必要になる場合もあります。コレクションのインデックス作成や更新を頻繁に行わない限り、これらの保守タスクは必要ないこともあります。次のタスクを実行できます。

コレクションのインデックス再作成

作成したコレクションのインデックスを再作成することができます。コレクションの作成後にドキュメントが変更されると、コレクションのインデックスは再作成されます。コレクションのインデックス再作成では、コレクション内の新しいコンテンツのインデックスは作成されず、コレクションの既存のコンテンツが更新されるだけです。サーバーのファイルシステムに存在しなくなったドキュメントのインデックスエントリが存在する場合は、そのエントリは消去されます。

コレクションのインデックスを再作成するには、次の手順を実行します。

  1. インデックスを再作成するコレクションを含む仮想サーバーを選択し、「Manage」ボタンをクリックします。
  2. 「Search」タブを選択し、「Maintain Collection」リンクをクリックします。
  3. インデックスを再作成するコレクションを「Collection」ドロップダウンリストから選択します。
  4. 「Reindex」ボタンをクリックします。

コレクションの保守スケジュールの追加

コレクションで定期的に実行される保守作業のスケジュールを設定することができます。スケジュールを設定できる作業は、インデックス再作成と更新です。特定のコレクションに作業のスケジュールを設定するときは、管理インタフェースを使用します。次の情報を指定できます。

コレクションの定期保守を追加するには、次の手順を実行します。

  1. 保守のスケジュールを設定するコレクションを選択し、「Add Scheduled Maintenance」リンクをクリックします。
  2. 次の情報を入力します。
    • Task: 自動化する作業を選択する。インデックス再作成または更新を選択できる
    • 「Update」を選択したときは、次の情報を指定する必要がある

      • Recurse Subdirectories?: 「No」を選択した場合、選択したディレクトリのサブディレクトリ内のドキュメントにインデックスは作成されない。デフォルトは「Yes」
    • Pattern: ワイルドカードを指定して、インデックスを作成するファイルを選択する。ワイルドカードについては、「リソースピッカーで使用するワイルドカード」を参照

    • 警告

      特定のファイルだけにインデックスが作成されるようにワイルドカードパターンを慎重に使用してください。たとえば、*.* と指定すると、実行可能ファイルや Perl スクリプトのインデックスまで作成されてしまう場合があります。


    • Default Encoding: インデックスを作成するドキュメントの文字エンコーディングを指定する。デフォルトは ISO-8859-1。インデックス作成エンジンは、埋め込まれているメタタグから HTML ドキュメントのエンコーディングを判断しようとする。エンコーディングが指定されていない場合、デフォルトのエンコーディングが使用される

      コレクション内のドキュメントの言語とエンコーディングは 1 つに制限されない。ドキュメントを追加するときに指定できるエンコーディングは 1 つだけだが、同じコレクションに次にドキュメントを追加するときは、異なるデフォルトエンコーディングを選択できる

    • Scheduled Time: (必須) 予定保守タスクを実行する時刻を HH:MM 形式で指定する。たとえば、コレクションに含まれるドキュメントの変更が完了している可能性が高い、一日の終わりに保守のタスクをスケジュールすることができる
    • Schedule day(s) of week: (必須) 1 つまたは複数のチェックボックスにチェックマークを付けて、予定保守タスクを実行する曜日を指定する
  3. 「OK」をクリックします。

  4. UNIX/Linux ユーザーは、保守スケジュールを追加した後に、変更を適用するために cron 制御プロセスを再起動する必要があります。


コレクション保守スケジュールの編集

要件が変更された場合は、新しい要件に合わせてコレクションの保守スケジュールのプロパティを変更できます。たとえば、サイトが更新される可能性が高い時間帯を念頭に置いて保守スケジュールを変更してください。

コレクションの保守スケジュールを変更するには、次の手順を実行します。

  1. 保守スケジュールを変更するコレクションを「Collection」ドロップダウンリストから選択します。
  2. 再設定するタスクを選択し、必要な情報を入力します。詳細は、オンラインヘルプの「Edit Scheduled Collection」ページを参照してください。
  3. 「OK」をクリックします。

  4. コレクションを削除すると、コレクションの保守スケジュールも削除されます。



    UNIX/Linux ユーザーは、保守スケジュールを変更した後に、変更を適用するために cron 制御プロセスを再起動する必要があります。


コレクションの保守スケジュールの削除

コレクションの保守スケジュールが不要になった場合は、そのスケジュールを取消すことができます。

コレクションの保守スケジュールを取消すには、次の手順を実行します。

  1. 保守スケジュールを削除するコレクションを「Collection」ドロップダウンリストから選択します。
  2. 保守スケジュールを削除するタスク (「Reindex」または「Update」) を選択します。タスクがスケジュールされている場合は、その詳細が表示されます。
  3. 更新タスクでは、削除するタスクの隣の「Delete」チェックボックスを選択します。
  4. 「OK」をクリックします。

  5. UNIX/Linux ユーザーは、保守スケジュールを削除した後に、変更を適用するために cron 制御プロセスを再起動する必要があります。



検索の実行

ユーザーが主に期待するのは、検索コレクション内でデータを照会し、ドキュメントのリストを取得することです。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 タグセットを使用して、このページをカスタマイズすることができます。


クエリの作成

検索クエリページは、コレクションに対する検索に使用されます。ユーザーは、キーワードのセットとオプションのクエリ演算子を入力し、ブラウザに表示される Web ページで結果を受信します。この結果ページには、検索条件を満たすサーバー上のドキュメントへのリンクが含まれます。


サーバー管理者は、「検索ページのカスタマイズ」で説明する方法で、検索クエリページをカスタマイズすることができます。


クエリを作成するには、次の手順を実行します。

  1. ブラウザのアドレスバーに次の形式で URL を入力し、検索 Web アプリケーションにアクセスします。
  2. http://<server-instance>:port number/search

  3. 表示される検索クエリページの検索対象で、検索するコレクションのチェックボックスを選択します。
  4. クエリを説明する単語をいくつか入力し、Enter キーを押すと (または「検索」ボタンをクリックすると)、関連する Web ページがリスト表示されます。

さらに詳細な検索を行うには、次の節で説明する「詳細検索」ページの検索パラメータを使用します。


詳細検索

ユーザーは、キーワードに演算子を追加して検索条件を限定することで、検索の精度を上げることができます。これらのオプションは、「詳細検索」ページで選択できます。

次の図は、詳細検索のページを示しています。

詳細な検索クエリを作成するには、次の手順を実行します。

  1. ブラウザのアドレスバーに次の形式で URL を入力し、検索 Web アプリケーションにアクセスします。
  2. http://<server-instance>:port number/search

  3. 「詳細検索」リンクをクリックします。
  4. 次のすべてまたは一部の情報を指定します。
    • 検索対象 : 検索するコレクションを選択する
    • 検索 : 次の 3 つのオプションがサポートされている
      • すべての単語に一致 : 「検索」フィールドに指定したすべての単語を含むページを検索する
      • いずれかの単語に一致 : 「検索」フィールドに指定したいずれかの単語を含むページを検索する
      • 完全に一致 : 「検索」フィールドに入力したとおりの語句を含むページを検索する
      • 通過検索: 検索したページ内でキーワードまたは単語を含む文書の一部を強調表示する
    • 対象外の単語: 指定した単語を含む Web ページが検索対象外となる
    • タイトル 次を含む / 含まない : 指定したキーワードをタイトルに含むページ、または含まないページに検索を限定する
    • 検索対象期間 : 指定した期間にインデックスが作成された Web ページに検索を限定する


検索結果の表示

検索結果は、Web ページとしてユーザーのブラウザに表示されます。このページには、検索条件と一致するサーバー上のドキュメントへの HTML ハイパーリンクが含まれます。デフォルトでは、各ページに 10 レコード (件) が表示され、条件が一致する度合いの高いものから昇順でソートされます。各レコードには、ファイル名、サイズ、作成日などの情報が表示されます。また、一致した単語は強調表示されます。


サーバー管理者は、「検索ページのカスタマイズ」で説明する方法で検索結果ページをカスタマイズすることができます。



検索ページのカスタマイズ

Sun ONE Web Server には、基本的な検索クエリページと検索結果ページを提供するデフォルトの検索アプリケーションが含まれます。これらの Web ページは、そのまま使用することも、必要に合わせてカスタマイズすることもできます。このカスタマイズは、Web ページに別のロゴを表示する商標変更のような単純な場合もあれば、検索結果の表示順序を変更するような複雑な場合もあります。

Sun ONE Web Server 6.0 とは異なり、検索インタフェースのカスタマイズにはパターンファイルを使用しません。Sun ONE Web Server 6.1 では、その代わりに、製品に含まれる JSP タグライブラリセットを使ってカスタマイズを行います。デフォルト検索アプリケーションには、検索タグライブラリを使用して検索インタフェースをカスタマイズする方法を示すサンプル JSP が含まれます。カスタマイズ可能な検索タグの使用方法を示すサンプルアプリケーションとして、/bin/https/webapps/search に格納されているデフォルトの検索アプリケーションを参照してください。

デフォルトの検索インタフェースは、ヘッダー、フッター、クエリフォーム、結果の 4 つのコンポーネントから構成されます。

これらの基本要素は、タグの属性値を変更するだけで簡単にカスタマイズできます。タグライブラリを使用することで、より詳細なカスタマイズを行えます。

この節では、次の内容について説明します。

検索インタフェースのコンポーネント

検索インタフェースは、次のコンポーネントから構成されます。

ヘッダー

ヘッダーには、ロゴ、タイトル、短い説明が含まれます。

フッター

フッターには、著作権情報が含まれます。

フォーム

クエリフォームには、検索対象コレクションに対応するチェックボックス、クエリ入力ボックス、送信ボタン、ヘルプボタンが含まれます。

結果

結果は、デフォルトでは 1 ページに 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>

サイドバーブロック形式

フォーム要素をサイドバーに配置した「Search」というタイトルのフォームブロックを作成し、サイドバー内のその他の項目と同じ形式を適用することもできます。次の図は、このような配置の表示結果を示しています。

次のコード例では、使用可能な検索対象コレクションが 3 つのチェックボックスとしてフォームの 1 つの列に配置されます。クエリ入力ボックスと送信ボタンは、すぐ下に配置されます。

<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 など) が表示されます。各レコードのレコードセクションには、ファイルのタイトルとリンク、キーワードが強調表示された最大で 3 つの文章の一部、URL、作成日、ドキュメントサイズが表示されます。

最後のセクションには、前後のページに移動するためのリンク、および現在のページの前後 8 つのページに直接移動するためのリンクを含むナビゲーションバーが表示されます。

<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 Service についてサイトで検索された上位 10 本の記事をリスト表示します。

<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』を参照してください。



前へ      目次      索引      次へ     


Copyright 2004 Sun Microsystems, Inc. All rights reserved.