使用HashKey进行DynamoDB搜索

时间:2017-01-05 06:56:41

标签: amazon-web-services amazon-dynamodb aws-java-sdk

我有以下结构的表

HashKey: Place Name
Attribute: Place Data Class

现在我想用地名搜索

例如:我有以下数据

Newyork {lat: x.xxxxx, lng: x.xxxxxx} Newzealand {lat: x.xxxxx, lng: x.xxxxxx} IndialaPolis {lat: x.xxxxx, lng: x.xxxxxx}

当我使用关键字new搜索时,它应该返回Newyork和Newzealand,我搜索谷歌这个,我发现我们可以通过HashKey获取所有记录

2 个答案:

答案 0 :(得分:2)

执行Query时,您只能在HashKey上拥有完全匹配。

但是,还有Scan操作,您可以将其与FilterExpression一起使用。请注意QueryScan以不同方式执行和消耗容量。 See the differences here

以下是您可以在Scan begins_with上使用的示例参数:

{
    table_name: tableName,
    filter_expression: "begins_with(#country, :search)",
    expression_attribute_names: {
        "#country" => "country"
    },
    expression_attribute_values: {
        ":search" => "new" 
    }
}

这个article是一个很好的起点。

答案 1 :(得分:0)

谢谢@ mark-b和@bruno-buccolo,正如你所说搜索hashkey字段是不可能的

因此,我手动为该表创建弹性搜索索引,并在每次原始记录更新时更新