使用Solr或Elasticsearch

时间:2017-03-27 20:33:30

标签: elasticsearch solr nosql

我有一个汽车模型的搜索数据库:" Nissan Gtr"," Huynday Elantra"," Honda Accord"等......

现在我还有一个用户列表和他们喜欢的汽车类型 user1喜欢:carId:1234,carId:5678等...

鉴于用户1我想要归还他喜欢的所有汽车,它甚至可以是0甚至是hundreads。

在Solr或可能是另一个" nosql"中建模的最佳方法是什么?可以帮助解决这个问题的系统。

我使用Solr,但如果可以,我有机会使用另一个系统,如果有意义的话。

编辑: Solr解决方案是加速缓慢(也许我们可以尝试嵌套)。目前使用连接表的MySQL解决方案有超过20亿行。

1 个答案:

答案 0 :(得分:1)

所以,你只想在User-> Cars之间存储一个映射,并根据用户检索汽车......听起来非常简单:

  1. 您的文档是用户:包含ID(已编入索引)等字段
  2. 其中一个字段是'carsliked',多值,其中包含他喜欢的车载ID
  3. 例如,您可以在不同的集合中获得有关每种护理的详细信息。
  4. 根据用户ID,您检索'carsliked'字段,并通过交叉集合连接获取汽车详细信息

    您还可以使用嵌套对象在每个用户内部存储每个喜欢的汽车(包含有关它的所有信息),但有点复杂。作为加分,您不需要查询的连接。

  5. Solr会允许你做更多的事情,例如,给一辆车,用户喜欢它? Elasticsearch将以完全相同的方式工作(可能还有许多其他工具,考虑到您的用例看起来有多简单)。