首页 > 解决方案 > 查询 dynamoDB 以获取 X 和 Y 之间的值

问题描述

我有一个 DynamoDB 表,如附图中所示,我正在寻找基于 lon 和 lat 字段查询表的方法。更具体地说,我正在寻找 X 和 Y 之间的 Lon 和 A 和 B 之间的 Lat 的所有结果。

有什么办法吗?我为 Lon 和 Lat 创建了索引,但值是字符串。

非常感谢你的帮助 !!

DynamoDB 表

标签: amazon-dynamodbdynamodb-queriesamazon-dynamodb-index

解决方案


你可以想出一个好的散列函数(让我们说 f)并为 dynamodb 提供以下架构

| pk          | sk               |  lat  | lon  | name 
| hashvalue1  | 48.80#2.35#Fac   | 48.80 | 2.35 | Fac du
| hashvalue1  | 48.83#2.36#Groupe| 48.83 | 2.36 | Groupe Hos

here f(48.80, 2.35) = hashvalue1
f(48.83, 2.36) = hashvalue1

每当您必须查询 lat1 和 lon1 时,计算 f(lat1, lon1) 并查询 db。但是这个解决方案的问题在于提出了一个好的散列函数,因为在最坏的情况下,您可能必须重新计算 db 中每个输入值的散列,否则它可能会成为热键。这种方法在这里这里都有很好的记录。

我建议使用弹性搜索,它会给你更多的灵活性。就未来的用例而言。


推荐阅读