如果我正在设计一个应该搜索标签/列的应用程序,我将如何在 Bigtable 中设计一个行键?

Posted

技术标签:

【中文标题】如果我正在设计一个应该搜索标签/列的应用程序,我将如何在 Bigtable 中设计一个行键?【英文标题】:How would I design a row-key in Bigtable if I was designing an application that should search for tags/columns? 【发布时间】:2020-03-26 00:57:45 【问题描述】:

我正在尝试设计一个类似 Netflix 搜索的系统,但我很难理解如何设计一个最佳行键,当用户按列执行搜索时,该行键将最小化总表扫描节目名称或标签。

假设 BigTable 中的架构将包含如下列:showName、season、episode、episodeName、tags

我如何设计我的行键,这样如果用户搜索特定列,它会避免全表扫描?还是我需要更改我的数据库设计?

或者像 Netflix 这样的系统是否使用不同的机制以更优化的方式对其内容进行搜索?

【问题讨论】:

嗨!你能告诉我更多关于标签的含义吗?此外,从写作来看,您似乎希望能够按季节或剧集进行搜索。喜欢所有系列的第一集吗? 【参考方案1】:

我会先去两张桌子:

    带有键的剧集表:showName#season#episode 索引如何查找剧集。 还有一个标签表,用于搜索带有简单键的标签:标签指向情节表中行的键。

例如,带有 Terror 和 Drama 标签的剧集或系列会在标签表中出现两次,首先在 Drama 下,然后在 Terror 下。

【讨论】:

以上是关于如果我正在设计一个应该搜索标签/列的应用程序,我将如何在 Bigtable 中设计一个行键?的主要内容,如果未能解决你的问题,请参考以下文章

基于带有图标的列的 DataTables 搜索 [关闭]

使用网格布局进行表单设计

移动开发中导航栏和搜索栏在设计中应该注意哪些问题?

超过12列的材料设计布局网格

Python pandas,使用 .str.contains 搜索数据框列的子字符串时出错

带有“N”列的jQuery“选择多个”