我们将组织名称存储在AWS上的DynamoDB表中,并希望在这些商业名称中保留官方大写,例如"TNT"和"FedEx".
我们的用例是应用程序的用户可以按名称搜索组织,但我们希望他们的查询被解释为不区分大小写.因此,对"FedEx","Fedex"或"fedex"的查询都应返回表中的正确项.
其他数据库有办法执行忽略大小写的查询(例如通过ILIKEPostgreSQL中的关键字),通过正则表达式表达查询,或者通过在条件中应用函数(例如 LOWER()函数).
如何在DynamoDB中完成?Amazon DynamoDB查询的文档没有提供答案.
(最好的解决方法似乎是将名称存储两次:一次使用官方大写,一次使用名称转换为小写的另一个字段.然后应在后一个字段进行搜索,查询搜索项也是转换为小写.是的,我知道它增加了表的冗余.这是一种解决方案,而不是最佳解决方案.)
在In DynamoDB中,字符串值区分大小写.在我的应用程序中,用户可以在数据库中搜索配置文件名称.但是,如果他们搜索,说'alan',那么'Alan'将不会在搜索结果中返回.如何允许用户指定不区分大小写的搜索以检索到良好的结果?
仅供参考:我正在使用带有Node.js和Express的DynamoDB,前端使用AngularJS.对db的扫描请求的脚本位于Express路由js文件中; 解释用户请求并发送到服务器的代码位于AngularJS控制器中.