Joc*_*per 9 amazon-web-services amazon-dynamodb
我们将组织名称存储在AWS上的DynamoDB表中,并希望在这些商业名称中保留官方大写,例如"TNT"和"FedEx".
我们的用例是应用程序的用户可以按名称搜索组织,但我们希望他们的查询被解释为不区分大小写.因此,对"FedEx","Fedex"或"fedex"的查询都应返回表中的正确项.
其他数据库有办法执行忽略大小写的查询(例如通过ILIKEPostgreSQL中的关键字),通过正则表达式表达查询,或者通过在条件中应用函数(例如 LOWER()函数).
如何在DynamoDB中完成?Amazon DynamoDB查询的文档没有提供答案.
(最好的解决方法似乎是将名称存储两次:一次使用官方大写,一次使用名称转换为小写的另一个字段.然后应在后一个字段进行搜索,查询搜索项也是转换为小写.是的,我知道它增加了表的冗余.这是一种解决方案,而不是最佳解决方案.)
小智 11
是的,确切地说,当您添加新项目/行时,还要添加一个新字段searchName,即您的名称字段的小写字母(甚至更多,可能只是字母/数字/空格).然后搜索该searchName字段
小智 5
在dynamodb中写入重复数据不是一个好的设计。最好的解决方案是在dynamodb中添加“弹性搜索”。您可以使用aws控制台“直接使用”连接此组件。然后在弹性搜索中使用自定义分析器来获取不区分大小写的数据。
| 归档时间: |
|
| 查看次数: |
10163 次 |
| 最近记录: |