我正在设计一个我正在设计的标签驱动软件架构。
我想要做的是将纯文本存储在数据库中,这是所有者和其他实体所喜欢的。纯文本填充标签就像Twitters主题标签一样,应该是可搜索/可索引的。 这可以在应用程序方面完成,因此我将需要为业务智能人员处理大量需要处理的大量数据。
没有人准备好纯文本,这只是关于不需要保持一致并且可以异步运行的分析。
我知道Twitter使用了几个数据库:Gizzard和Cassandra用于推文,FlockDb用于关系。
我不想使用混合物来完成关系,我也不想建立下一个社交网络。我需要做的是分析与其他实体相关的所有标签。
如何解决哈希标记问题,或者如何处理文本以使其有效?
我真的在寻找一个不错的解决方案而不仅仅是任何解决方案。我真的知道如何为SQL创建模式。
感谢您帮助我完成数据库丛林。
答案 0 :(得分:1)
这是在数据库中表示标签的一种相当标准的方法:
应用程序解析RAW_TEXT,对于每个已识别的标记,检查它是否已经在TAG中,如果它不是,则将其插入到那里。然后,只需将帖子与从中提取的标签连接起来,方法是插入TAG_POST。
注意TAG_POST的复合主键中的字段顺序 - 在前沿具有TAG_ID有助于有效搜索给定标记的帖子。如果您想获得给定帖子的标签,请翻转订单。如果您想要两者,请以与PK相反的顺序创建复合索引。
如果你的DBMS支持clustering,TAG_POST将是一个很好的候选者。
如果您的DBMS支持前沿索引压缩(Oracle),请考虑简单地执行此操作:
压缩索引会有效地存储同一TAG_NAME的多个重复内容,因此无需"外包"为了节省空间,它到另一张桌子。