【发布时间】:2018-08-04 04:32:24
【问题描述】:
我是 Cassandra 的新手。在把我的头撞在墙上几天之后,事情开始变得有意义,除了...... 我总是需要 PK 来执行查询? ????
因此,我考虑了以下场景:假设我正在构建一个包含数千种食谱的食谱网站。每个食谱都有一个标题、一份配料表和一个类型(早餐、午餐、甜点等) 我想要一个搜索字段,我可以使用这三个参数中的任何一个来查找食谱。我不能将所有 3 个参数都作为 PK,因为我无法仅使用其中一个参数进行搜索 [如果我将一个参数作为 PK 而其他参数则相同作为簇键]。 我知道二级索引不是一个好主意。 因此,如果我希望能够按成分查询食谱,我将必须创建一个成分表,在其中放置一个 recipeId,然后在每一行上放置一个成分列表,对吗?
但是,我将如何按成分查询并按评级排序?我应该将评级添加到成分表中吗?我应该复制那么多数据吗?
如果我想同时按成分和类型查询,我需要执行两个单独的查询并比较它们?
对于用户表:登录时我需要通过电子邮件查找用户。然后,其他用户会按他们的名字搜索他们的朋友。所以我需要一个不同的表来存储登录凭据和用户配置文件?
基本上,我要做的是创建 很多 表。这是预期的吗?这是可取的吗?
我应该以某种方式整合 MySQL 和 Cassandra 吗?
提前致谢。
【问题讨论】:
-
我认为对于这种搜索,最好使用 Solr 或 Elasticsearch 之类的东西 - 它可能更自然。
标签: cassandra nosql primary-key