使用 HashKey 进行 DynamoDB 搜索

DynamoDB Search with HashKey

我有 table 具有以下结构

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 搜索时,它应该 return Newyork 和 Newzealand,我搜索 google 为此,我发现我们可以通过 HashKey

在执行 Query 时,您只能在 HashKey 上进行精确匹配。

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

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

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

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

谢谢@mark-b 和@bruno-buccolo,正如您所说,无法搜索 hashkey 字段

所以我为那个 table 手动创建了弹性搜索索引,并在每次原始记录更新时进行更新