2017-07-28 107 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

對不起,我誤添加下劃線 –

相關問題