お知らせ:

当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

インデックスのクエリ

Catalystでは、インデックスのプライマリキーを使用してアイテムを識別し、NoSQLインデックスをクエリしてデータを取得できます。インデックスを使用すると、メインテーブルのプライマリキーを使用せずに、テーブルデータに対して代替クエリを実行できます。Catalystコンソールからインデックスを設定できます。インデックスのパーティションキーのみ、またはパーティションキーとソートキーの組み合わせを使用してアイテムを取得できます。

注意: Catalystでは、1回のSDK操作でページネーションを使用してNoSQLテーブルから最大100アイテムを一括取得できます。SDKレスポンスで受け取ったstart_keyトークンを使用して、ページネーションのロジックを構築する必要があります。

属性、その必要な値、使用するサポートされる演算子を指定して、アイテムを識別するキー条件を定義できます。グループ演算子で追加条件を指定することもできます。

サポートされる演算子は以下のように表されます。

Operators Notation
CONTAINS contains
NOT_CONTAINS not_contains
BEGINS_WITH begins_with
ENDS_WITH ends_with
IN in
NOT_IN not_in
BETWEEN between
NOT_BETWEEN not_between
EQUALS equals
NOT_EQUALS not_equals
GREATER_THAN greater_than
LESS_THAN less_than
GREATER_THAN_OR_EQUALS greater_equal
LESSER_THAN_OR_EQUALS less_equal
AND AND
OR OR

以下の例では、一意のインデックスIDで参照されるインデックスを使用してクエリを実行しています。クエリはインデックスのパーティションキーfruitColorを使用してアイテムを識別し、条件値を「yellow」として指定しています。また、属性fruitTypeが「citrus」に一致する追加条件も指定しています。クエリはquery_index()メソッドを使用して実行されます。

Catalyst NoSQLでは、consistent_readを使用して読み取り操作をマスターまたはスレーブクラスターのどちらで実行するかを示す、返される行数の制限、昇順でのソート順の指定など、クエリの他の要素も定義できます。

注意: マスター・スレーブレプリケーションでは、マスターにはデータベースのすべてのデータが含まれ、スレーブにはマスターからのコピーが含まれます。スレーブから読み取り操作を実行すると、更新されたデータの反映に若干の遅延があるというトレードオフで、全体的なコストを削減できます。
copy

# パーティションキーfruitColourの値が"yellow"であるアイテムを取得するためにNoSQLテーブルインデックスをクエリする# インデックスの一意のIDを渡す
cres = table.query_index('6759000000740017', {
  # consistent_readをtrueに設定してマスターからクエリする。falseの場合、スレーブからクエリされる。
   'consistent_read': 'true',# forward_scanをtrueに設定して結果を昇順でソートする。それ以外の場合は降順でソートされる。
   'forwardScan': 'true',# 値を指定して返される行数を制限する
   'limit': 10,# アイテムをクエリするためのキー条件を定義する
   'key_condition': {
    'attribute': 'fruitColor',
    'operator': 'equals',
   'value': {
     'S': 'yellow'
    }
   },
   # グループ演算子を使用してデータをクエリするための追加条件を定義する
   'other_condition': {
    'group_operator': 'AND',
    'group': [
     {
      'attribute': 'fruitType',
      'operator': 'equals',
      'value': {
       'S': 'citrus'
      }
     }
    ]
   } 
 })
print(res)

最終更新日 2026-03-30 13:40:30 +0530 IST

このページについて

関連リンク

NoSQL Table Keys Query Index