DynamoDB-chan est pratique et moins cher que toute autre chose, mais ce n'est pas très facile à utiliser pour la recherche. Aujourd'hui, j'ai réfléchi à la façon de faire une recherche de préfixe avec cela, alors je voudrais le résumer. Comme je l'ai dit à l'avance, Scan est utilisé, alors faites attention à ne pas en abuser.
lambda_function.py
import json
import boto3
from boto3.dynamodb.conditions import Attr
def lambda_handler(event, context):
dynamoDB = boto3.resource("dynamodb")
table = dynamoDB.Table(event["type"])
title = event["title"]
fin = title[0]+chr(ord(title[1])+2)
queryData = table.scan(
FilterExpression = Attr("Title").between(title,fin)
)
return queryData
Cela prépare une chaîne de caractères qui est le deuxième caractère de la chaîne de caractères d'entrée et la chaîne de caractères d'entrée décalée de deux, et obtient l'espace entre eux.
Dans le cas de la chanson "Kyun" de Hinatazaka 46 utilisée pour le test cette fois, commencez par créer la chaîne de caractères "Kyo" à partir de la chaîne de caractères "Kyun".
C'est la partie suivante.
fin = title[0]+chr(ord(title[1])+2)
Tout ce que vous avez à faire est de scanner la différence normalement. En passant, dans le cas de "Kyun", c'est comme suit.
Comme c'est entre "Kyun" et "Kyo", il y a des chansons qui commencent par "Kyu", mais soyez patient.
L'analyse DynamoDB est gâchée car elle réduit les données cibles après l'acquisition de tous les cas. Si vous pouvez vous attendre à être touché particulièrement fréquemment, inscrivez-vous docilement à RDS. Je suis un développeur pinchke, donc je ferai de mon mieux avec DynamoDB pendant un moment.
Recommended Posts