当前位置: 首页 > 知识库问答 >
问题:

我们应该如何对相关的标签进行分组?

崔宜修
2023-03-14

如堆栈溢出?

我注意到有些标签是同义词。例如餐厅和餐馆。有些标签是分层的。例如,食物->餐厅。

您如何在MongoDB中存储数据结构?

是否有默认值为ID的同义词集?

例如,如果用户搜索餐厅,你会怎么做?

您是将所有搜索转换成它的默认形式并搜索标签,还是将搜索扩展到它的所有同义词?

标准的方式是什么?

我正在使用MongoDB。

共有1个答案

墨安阳
2023-03-14

StackOverflow架构是关系的。(特别是MS SQL Server2008)它维护标记和post之间的多对多关系。并且保持标签与其同义词的单向关系。

您的restaurants示例似乎是一个分类系统,其中分类中的节点名称可能具有同义词。在这种情况下,分类的数据结构可能比实际的节点名称更重要。同义词的实现方式将高度依赖于数据结构和预期的查询模式。查看数据建模模式文档可以看到各种不同的数据结构。

Mongo没有任何内置在核心DB服务器中的名称别名功能。有些ORM在客户端提供了有限的名称别名功能。例如通过虚拟属性的mongoose。但是,使用这些方法时要谨慎,因为它们不能提供潜在的性能优势,而且可能会掩盖数据库中实际发生的情况。

 类似资料:
  • 我正在创建一个聊天机器人,以询问一些关于图片中所示国家中许多公司的商店列表业务的特定问题。我正在努力应对这样一个事实:我应该如何对本案的实体进行分组: 当用户输入:Wonder Group时,我想检查它在加利福尼亚州是否有任何商店。- - 还有,我应该使用多重条件反射还是这里的槽? 我试过很多方法,但都不管用。 实体类型

  • 自从Facebook推出了标签,我就一直有兴趣了解更多关于它们的信息。有没有人能告诉我跟踪标签的方向,就像推特允许我们通过API获取标签数据一样。我可以数一数被提及的次数、用户名和推文。Facebook有没有推出类似的产品?我在网上找不到任何文档。

  • 问题内容: 到目前为止,我似乎避免了测试多线程代码的噩梦,因为它似乎太多了。我想问一下人们如何去测试依赖于线程的代码才能成功执行,或者人们如何去测试那些仅在两个线程以给定方式交互时才会出现的问题? 对于当今的程序员来说,这似乎是一个非常关键的问题,将我们的知识集中在这一恕我直言上将很有用。 问题答案: 看,没有简单的方法可以做到这一点。我正在开发一个本质上是多线程的项目。事件来自操作系统,我必须同

  • 问题内容: 我在ORM上还很新。我刚刚开始阅读有关使用Hibernate的Java Persistence API的书籍和文档。 我只是想知道,关闭EntityManagerFactory与jdbc数据库连接关闭类似吗? 我们是否应该在每次持久/更新/删除后关闭它?如果我们不关闭它,数据库连接会保持打开状态吗? 问题答案: 我只是想知道,关闭与jdbc数据库连接关闭类似吗? 这并非完全正确,但关闭

  • 问题内容: _ 我调查了Facebook的来源,他们使用标签显示图标。 另外,今天我调查了Twitter的Bootstrap。它还使用标签显示图标。 但,根据HTML5规范: I元素代表替代声音或语气中的文本范围,或以其他方式偏离了正常散文,例如分类名称,技术术语,另一种语言的惯用语,思想,船名或其他散文,其典型的印刷形式为斜体。 他们为什么使用标签显示图标? 这不是一个坏习惯吗? 还是我在这里想

  • 问题内容: 我想以1小时为间隔选择记录,并以小时为间隔选择最高和最低值。我可以在一个小时(例如1:00 am,2:00 am,3:00 am)上执行此操作,但是我想按指定的分钟数(例如1:30am,2:30am,凌晨3:30,或凌晨1:50,凌晨2:50,凌晨3:50)。我不想按半小时分组(例如1:00、1:30、2:00、2:30),这是我每1小时间隔一次的SQL: 我试过了:hour(date