検索

14.7.4. 単純なページ結果の使用

download PDF
検索結果は非常に大きくなる可能性があり、結果処理の一部が結果を整理することです。その方法の一つとして、ページングされた単純な結果 を使用することがあります。これは、結果を一定の長さのページに分割するコントロールです。
シンプルなページの結果で、一度に表示するエントリーの数を設定できます。結果は一度に 1 ページ経由でスクロールされるため、ダイジェストで結果が容易になります。制御の完全な動作は RFC 2696 で説明されています。
ページングされた単純な結果は、Directory Server の LDAP コントロール拡張機能として実装されます。OID は 1.2.840.113556.1.4.319 です。

簡単なページ結果の仕組み

ページ結果の簡単な検索を開始すると、以下のようになります。

  1. クライアントは検索をサーバーに送り、ページ付けの結果が制御し、最初のページで返すレコードの数を制御します。
  2. Directory Server がデータの返信を開始する前に、サーバーは合計で何件のレコードを返信できるかの見積もりを生成します。
    レコードの推定値は、正確な数ではありません。返されるレコードの合計数は推定値よりも小さくなります。このようなシナリオの理由は以下の通りです。
    • 検索フィルターで使用される属性はインデックスに存在しません。最適な結果を得るには、クエリーされた属性をすべてインデックス化する必要があります。
    • エントリーがクライアントに送信される前に、アクセス制御リスト (ACL) が検証されます。パーミッションが十分にないため、エントリーが返されなくなります。
    推定値を生成した後、サーバーは最初の結果セット、Cookie、および推定レコード数を送信します。
  3. 返されたレコードがクライアントに表示されます。ユーザーは、次のリクエストで返されるレコードの数を入力できるようになりました。要求された番号は、Cookie と一緒にサーバーに送信されます。
  4. サーバーは要求された数のレコードをデータベースから取得し、それらを Cookie と共にクライアントに送信します。
  5. 前述の 2 つのステップは、すべてのレコードが送信されるか、検索がキャンセルされるまで繰り返されます。

シンプルなページ結および OpenLDAP ツール

ldapsearch の簡単なページの結果検索オプションの形式は以下のとおりです。

-E pg=size
size の値はページサイズまたはページごとに含むエントリー数です。以下に例を示します。
ldapsearch -x -D "cn=Directory Manager" -W -b "ou=Engineers,ou=People,dc=example,dc=com" -E pg=3 "(objectclass=*)" cn

dn: uid=jsmith,ou=Engineers,ou=People,dc=example,dc=com
   cn: John Smith

dn: uid=bjensen,ou=Engineers,ou=People,dc=example,dc=com
   cn: Barbara Jensen

dn: uid=hmartin,ou=Engineers,ou=People,dc=example,dc=com
   cn: Henry Martin

Results are sorted.
next page size (3): 5
末尾のタグには、検索で設定されたページサイズ (カッコ内の数字) が表示されています。コロンの後に、次のページのページサイズが表示されるため、以下に示すように 5 と入力すると、次のページが 5 つのエントリーで開きます。
重要
簡素なページ結果操作は、OpenLDAP コマンドラインツールのバージョン 2.4.18 以降、または Perl Net::LDAP などの簡素なページング結果をサポートするその他のクライアントを使用して実行する必要があります。

ページングされた簡素な結果およびサーバー一致

ページングされた簡素な結果は、サーバー側のソートと併用できます。サーバー側のソートは、クライアントではなくサーバーでソートプロセスを実行する制御です。これは通常、特定のマッチングルールを使用する検索を行います。(この動作は RFC 2891 で定義されています。) OpenLDAP クライアントツールは、簡素なページングされた結果制御でサーバー側のソートをサポートしませんが、Perl Net::LDAP などのその他の LDAP ユーティリティーは両方をサポートします。

1 つの接続に複数の簡素なページングされた結果要求

一部のクライアントは Directory Server への接続を 1 つ開きますが、簡素なページングされた結果拡張を使用する複数の検索要求など、複数の操作要求を送信します。

Directory Server は、複数の簡素なページングされた検索を管理および解釈できます。各検索は、アレイ内のエントリーとして追加されます。ページングされた検索要求が最初に送信されると、Cookie が作成され、検索結果に関連付けられます。結果の各ページはその Cookie で返されます。Cookie は結果の次のページを要求するために使用されます。最後のページでは、Cookie が空になり、結果が終了したことを示します。これにより、各検索結果のセットが個別に保持されます。
1 つの接続に複数の簡素なページングされた結果がある場合、タイムアウト制限は引き続き監視されますが、すべて のオープン検索要求は、いずれか のページ検索が切断される前に、設定された時間制限に到達します。

VLV インデックスと対照的な、簡素なページングされた結果

VLV インデックスは簡素なページングされた結果に類似しているため、それらのインデックスは、結果の閲覧可能な一覧も返すことになります。主な違いは、リストの生成方法です。簡素なページングされた結果は検索ごとに計算されますが、VLV インデックスは永続的なリストになります。全体的に、VLV インデックスは検索速度が速いですが、サーバー側の設定が必要で、サーバーが維持するためのオーバーヘッドがあります。

注記
シンプルなページの結果と VLV インデックスは、同じ検索では使用 できません。簡素なページングされた結果は、すでに参照しているインデックスである VLV インデックスの操作を試みます。VLV インデックスを使用した検索に制御が渡された場合、サーバーは UNWILLING_TO_PERFORM エラーを返します。
VLV インデックスの詳細は、「ロージング(VLV)インデックスの作成」を参照してください。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.