2017-07-28 68 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名单有:[soccer ball, dog]然后只entry_id=2行应退还

enter image description here

任何见解将不胜感激。

回答

0

我认为这是因为在query_src_word中有“soccer_ball”(带下划线),而在数据库中有“足球”(没有下划线)。

更改“soccer_ball”到“足球”在您的query_src_words,它应该工作找到

+0

对不起,我误添加下划线 –

相关问题