![](/img/trans.png)
[英]Faceted search: ElasticSearch/Solr or a simple database query?
[英]Search/retrieve by a large OR query clause with Solr or Elasticsearch
我有一个汽车模型的搜索数据库:“日产Gtr”,“ Huynday Elantra”,“ Honda Accord”等。
现在我还有一个用户列表,以及他们喜欢user1喜欢的汽车类型:carId:1234,carId:5678等...
给定用户1,我想退回他喜欢的所有汽车,它可以是0甚至是杂项。
在Solr或潜在的另一个“ nosql”系统中对此建模的最佳方法是什么,可以解决此问题。
我正在使用Solr,但是如果可以的话,我有机会使用另一个系统。
编辑:Solr解决方案是加入慢(也许我们可以尝试嵌套)。 并且当前使用联接表的MySQL解决方案有超过20亿行。
因此,您只想在User-> Cars之间存储映射,并根据用户检索汽车...听起来很简单:
给定用户ID,您将检索“ carsliked”字段,并通过交叉集合联接获取汽车详细信息
您还可以使用嵌套对象将每个喜欢的汽车(以及有关它的所有信息)存储在每个用户内,但是要复杂一些。 另外,您不需要查询上的联接。
Solr可以让您做更多事情,例如,给定一辆车,哪个用户喜欢呢? Elasticsearch将以完全相同的方式工作(考虑到用例看起来多么简单,可能还有许多其他工具)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.