インデックスのクエリ
Catalystでは、インデックスのプライマリキーを使用してアイテムを識別し、NoSQLインデックスをクエリしてデータを取得できます。インデックスを使用すると、メインテーブルのプライマリキーを使用せずに、テーブルデータに対して代替クエリを実行できます。Catalystコンソールからインデックスを設定できます。インデックスのパーティションキーのみ、またはパーティションキーとソートキーの組み合わせを使用してアイテムを取得できます。
属性、その必要な値、使用するサポートされる演算子を指定して、アイテムを識別するキー条件を定義できます。グループ演算子で追加条件を指定することもできます。
サポートされる演算子は以下のように表されます。
| 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を使用して読み取り操作をマスターまたはスレーブクラスターのどちらで実行するかを示す、返される行数の制限、昇順でのソート順の指定など、クエリの他の要素も定義できます。
# パーティションキー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
Yes
No
Send your feedback to us