--- title: "インデックスのクエリ" url: https://docs.catalyst.zoho.com/ja/sdk/python/v1/cloud-scale/nosql/query-index/ description: "Catalyst NoSQLは、非リレーショナル・非SQLのデータストレージ手段を提供する、完全マネージドで強力なデータベースです。このページでは、NoSQLインデックスをクエリするSDKメソッドについて説明します。" last_updated: 2026-03-30T08:10:30Z service: Cloud Scale type: general related_links: - name: "NoSQL" url: /ja/cloud-scale/help/nosql/introduction - name: "Table Keys" url: /ja/cloud-scale/help/nosql/components/#table-keys - name: "Query Index" url: /ja/sdk/nodejs/v2/cloud-scale/nosql/query-index/ --- # インデックスのクエリ Catalystでは、インデックスの[プライマリキー](https://docs.catalyst.zoho.com/ja/cloud-scale/help/nosql/components/#table-keys)を使用してアイテムを識別し、[NoSQL](https://docs.catalyst.zoho.com/ja/cloud-scale/help/nosql/introduction/)インデックスをクエリしてデータを取得できます。インデックスを使用すると、メインテーブルのプライマリキーを使用せずに、テーブルデータに対して代替クエリを実行できます。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`を使用して読み取り操作をマスターまたはスレーブクラスターのどちらで実行するかを示す、返される行数の制限、昇順でのソート順の指定など、クエリの他の要素も定義できます。 > **注意:** マスター・スレーブレプリケーションでは、マスターにはデータベースのすべてのデータが含まれ、スレーブにはマスターからのコピーが含まれます。スレーブから読み取り操作を実行すると、更新されたデータの反映に若干の遅延があるというトレードオフで、全体的なコストを削減できます。 ```python # パーティションキー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) ```