比如栈溢出?
我注意到有些标签是同义词。例如餐厅和餐馆。一些标签是分层的。例如,食物 -> 餐厅。
你如何将数据结构存储在mongodb中?
您是否有默认为 id 的同义词集?
例如,如果用户搜索餐厅或餐厅,您会怎么做?
您是将所有搜索转换为默认形式并搜索标签还是将搜索扩展到所有同义词?
标准方法是什么?
我正在使用 mongodb。
StackOverflow 架构是关系型的。(特别是MS SQL Server 2008)它维护标签和帖子之间的多对多关系。并且它保持标签与其同义词的单向关系。
您的餐馆示例似乎是一个分类系统,其中分类中的节点名称可能有同义词。在这种情况下,分类的数据结构可能比实际的节点名称更重要。如何实现同义词将高度依赖于数据结构和预期的查询模式。查看数据建模模式文档以了解各种不同的数据结构。
Mongo 没有在核心数据库服务器中内置任何名称别名功能。一些 ORM 在客户端提供有限的名称别名功能。例如猫鼬通过虚拟属性。但是应该谨慎使用它们,因为它们不会提供潜在的性能优势,并且可能会掩盖数据库中真正发生的事情。