2017-07-28 7 views
0

私が提供する値のリストにある属性値を持つ検索項目をチェックしたいと思います。以下は検索のための質問です。残念ながら、レスポンスは空のアイテムリストを返します。なぜこれが当てはまるのか分かりませんし、正しいクエリを知りたいと思います。IN Amazon DynamoDBでクエリが機能しない

def search(self, src_words, translations): 
    entries = [] 
    query_src_words = [word.decode("utf-8") for word in src_words] 

    params = { 
     "TableName": self.table, 
     "FilterExpression": "src_word IN (:src_words) AND src_language = :src_language AND target_language = :target_language", 
     "ExpressionAttributeValues": { 
     ":src_words": {"SS": query_src_words}, 
     ":src_language": {"S": config["source_language"]}, 
     ":target_language": {"S": config["target_language"]} 
     } 
    } 
    page_iterator = self.paginator.paginate(**params) 
    for page in page_iterator: 
     for entry in page["Items"]: 
     entries.append(entry) 
    return entries 

以下は、私が照会したい表です。 query_src_wordの私のリストが持っている場合たとえば:

enter image description here

を返すべき[soccer ball, dog]をのみentry_id=2と行の任意の洞察力をいただければ幸いです。

答えて

0

これは、query_src_wordには「サッカーボール」(アンダースコア付き)があり、データベースには「サッカーボール」(アンダースコアなし)があるためだと思います。

あなたquery_src_wordsで「サッカーボール」に変更し、「soccer_ball」と、それは

+0

申し訳ありませんを見つける動作するはずです、私は誤って、アンダースコアを追加しました –

関連する問題