Effectuer une recherche de préfixe avec DynamoDB

introduction

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.

Premièrement, le code source qui a été réellement mis dans Lambda

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

Qu'est-ce que tu fais?

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. image.png Comme c'est entre "Kyun" et "Kyo", il y a des chansons qui commencent par "Kyu", mais soyez patient.

finalement

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

Effectuer une recherche de préfixe avec DynamoDB
Dichotomie avec Python
Recherche linéaire en Python
Recherche binaire en Python
Rechercher des chaînes dans les fichiers
Recherche binaire en Python / C ++
Algorithme en Python (dichotomie)
[Python] Obtenez des éléments en spécifiant des attributs avec une recherche de préfixe dans BeautifulSoup
Ecrire une dichotomie en Python
Opération de collecte de type Scala en Python
Algorithme en Python (recherche de priorité en profondeur, dfs)
Écrire une recherche de priorité en profondeur en Python
Recherche de priorité de profondeur à l'aide de la pile en Python