import boto3
def query_items_by_sort_key_prefix(table_name, partition_key_name, partition_key_value, sort_key_name, prefix):
"""
DynamoDBでソートキーの前方一致検索を行う。
:param table_name: テーブル名
:param partition_key_name: パーティションキーの属性名
:param partition_key_value: パーティションキーの値
:param sort_key_name: ソートキーの属性名
:param prefix: 検索するプレフィックス
:return: 検索結果
"""
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table(table_name)
# クエリの実行
response = table.query(
KeyConditionExpression=f"{partition_key_name} = :pkval and begins_with({sort_key_name}, :prefix)",
ExpressionAttributeValues={
':pkval': partition_key_value,
':prefix': prefix
}
)
return response['Items']
# 使用例
table_name = 'YourTableName'
partition_key_name = 'YourPartitionKeyName'
partition_key_value = 'SpecificPartitionKeyValue'
sort_key_name = 'YourSortKeyName'
prefix = 'SpecificPrefix'
items = query_items_by_sort_key_prefix(table_name, partition_key_name, partition_key_value, sort_key_name, prefix)
print(items)