我有一个 DynamoDB 表,如附图中所示,我正在寻找基于 lon 和 lat 字段查询表的方法。更具体地说,我正在寻找 X 和 Y 之间的 Lon 和 A 和 B 之间的 Lat 的所有结果。
有什么办法吗?我为 Lon 和 Lat 创建了索引,但值是字符串。
非常感谢你的帮助 !!
我有一个 DynamoDB 表,如附图中所示,我正在寻找基于 lon 和 lat 字段查询表的方法。更具体地说,我正在寻找 X 和 Y 之间的 Lon 和 A 和 B 之间的 Lat 的所有结果。
有什么办法吗?我为 Lon 和 Lat 创建了索引,但值是字符串。
非常感谢你的帮助 !!
你可以想出一个好的散列函数(让我们说 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 中每个输入值的散列,否则它可能会成为热键。这种方法在这里和这里都有很好的记录。
我建议使用弹性搜索,它会给你更多的灵活性。就未来的用例而言。