Search NoSQL-如何正确实现自动建议和最佳匹配?
我们正在建立一个汽车及其性能的数据库,应该存储在发电机中 创建一个Search NoSQL-如何正确实现自动建议和最佳匹配?,search,nosql,amazon-dynamodb,autosuggest,search-suggestion,Search,Nosql,Amazon Dynamodb,Autosuggest,Search Suggestion,我们正在建立一个汽车及其性能的数据库,应该存储在发电机中 创建一个cars表,并用具有品牌、型号、年份等属性的对象填充该表很容易 但我们还希望管理界面具有一些其他功能: 键入时的建议 在创建汽车时,在现场输入时,应建议现有汽车的品牌和型号 然后,我们是否应该在另一个表中维护品牌和型号的列表,并在用户键入时查询该表 或者,查询汽车定义的“丰富”表,并获取品牌的所有值,以及品牌具有特定值的所有车型值是否足够好?我的第一个想法是,这将是一个繁重的操作,我们需要一个单独的汽车和车型指数。但我不是NoSQ
cars
表,并用具有品牌
、型号
、年份
等属性的对象填充该表很容易
但我们还希望管理界面具有一些其他功能:
键入时的建议
在创建汽车时,在现场输入时,应建议现有汽车的品牌和型号
然后,我们是否应该在另一个表中维护品牌和型号的列表,并在用户键入时查询该表
或者,查询汽车定义的“丰富”表,并获取品牌
的所有值,以及品牌
具有特定值的所有车型
值是否足够好?我的第一个想法是,这将是一个繁重的操作,我们需要一个单独的汽车和车型指数。但我不是NoSQL专家
最佳匹配
在我们的系统中注册新车时,如果可能的话,我们希望使用现有定义的汽车作为参考
因此,当用户键入品牌、型号、年份等时,我们希望显示一些最佳匹配的选项-我们可以接受,他们的年份等不同,但首先需要最佳匹配
对NoSQL数据库中的数据进行类似匹配的最佳方法是什么?任何工具、概念等的链接将不胜感激:)
提前感谢dynamodb(所有nosql)中的,您创建表的次数越少,您的体系结构就越好(这是我们使用nosql的主要原因之一),因此不需要新表,只需添加一个新属性并用所需的可搜索数据填充即可,请记住,dynamodb的查询是区分大小写的,您只能使用以开头或包含函数来查询数据
缺点是:
我建议的解决方案是使用aws cloudsearch,它提供了一个开箱即用的建议,您将获得更好的结果并提供更好的用户体验,cloudsearch中的索引是自动的,每次您有一个新项目,但要注意定价,不过,他们会给你30天的免费时间是的,我可以看到cloudsearch使用了EC2实例——我们根本不想使用服务器,到目前为止做得很好。但是每月只有5美元。。。无论如何,所提到的系统将只由管理人员使用,并且(在开始时)每天只进行几次查找等,所以我认为,发电机的扩展使用应该不会是一个问题吧?但是,如果cloudsearch或elasticsearch能够更快/更容易地实现一个低效的解决方案,我不想浪费很多时间来实现它。我想知道为什么AWS不提供“按使用付费”服务而不是EC2?是的,正如你所说,更高效更快,部署时间更短,但有点贵,所以这取决于你