NoSQL-如何正确实现自动建议和最佳匹配



我们正在构建一个汽车及其属性的数据库,应该存储在DynamoDB中。

创建一个cars表并用具有brandmodelyear等属性的对象填充它很容易。

但我们也希望在管理界面上有一些其他功能:

键入时的建议

当创建一辆汽车时,它应该在字段中输入现有汽车的品牌和型号。

然后,我们是否应该在另一个表中维护一个品牌和型号的列表,并在用户键入时对该表进行查询?

或者,查询"丰富"的汽车定义表,并获得brand的所有值,以及brand具有特定值的所有model值,等等,是否足够好?我的第一个想法是,这将是一项繁重的工作,我们希望对汽车和模型进行单独的索引。但我不是NoSQL专家。。。

最佳匹配

在我们的系统中注册新车时,如果可能的话,我们希望使用现有的定义汽车作为参考。

因此,当用户输入品牌、型号、年份等时,我们想显示一些最佳匹配的选项——我们可以接受它们的年份等不同,但首先想要最佳匹配。

对NoSQL数据库中的数据进行这样的匹配的最佳方法是什么?任何工具、概念等的链接都将受到赞赏:(

提前感谢

在dynamodb(所有nosql(中,创建的表越少,架构就越好(这是我们使用nosql的主要原因之一(,因此不需要新表,只需添加一个新属性并用您想要的可搜索数据填充即可,请记住,通过dynamodb进行查询是区分大小写的,您只能使用begins_withcontains函数来查询数据

缺点是:

  1. 您将使用大量的读取容量单位
  2. 你必须管理大写字母
  3. 你必须在每次创建时构造可搜索的属性

我建议的解决方案是使用aws cloudsearch,它提供了一个开箱即用的建议,你会有更好的结果,并提供更好的用户体验,每次你有新项目时,cloudsearch中的索引都是自动的,但要注意价格,但他们会给你30天的免费

最新更新