首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >RDBMS到Elastic Search

RDBMS到Elastic Search
EN

Stack Overflow用户
提问于 2015-06-11 00:46:17
回答 1查看 118关注 0票数 1

假设我有5个表,分别是groupspostsgroups_postspost_commentsposts_votes

groups表的字段为user_idnamedescriptionposts的字段为user_idcomment

groupsposts之间的关系是MANY_2_MANY,所以每个帖子可以属于多个组,每个组可以包含0-*个帖子。这就是表groups_posts所做的事情。

post_comments表包含以下字段:textpost_iduser_idadded_at(date)、total_commentstotal_votes

posts_votes表包含以下字段:post_iduser_idvote_at(date)

我想在Elastic Search中对这些结构进行建模。我需要从用户组(用户可以属于0-*组)中快速搜索过去12小时内特定用户的最受欢迎的帖子的主要原因是基于此时间量的帖子评论和帖子投票的总和。

你能告诉我如何有效地将其映射到Elastic搜索索引上吗?

EN

回答 1

Stack Overflow用户

发布于 2015-06-11 03:29:31

我想你必须做出一些决定。

首先,您可以为每天创建一个索引,以便在运行当天的查询时只搜索一个索引。

因为我们在elasticsearch中没有joins,所以你需要将你的数据相关数据聚合在一起,例如把所有与用户相关的数据放在一起,这样你的数据就会是这样的:

代码语言:javascript
运行
复制
[
  {
    "user_id":123,
    "groups": [
       {
         "name":"my group",
         "posts_by_user":[ // only comments by this user
           {
             "content": "foo bar baz",
             "votes":5
           },
           {
             "content": "bar baz quux",
             "votes": 43
           },
           ... other posts by this user in this group
         ]
       },
       ... other groups 
    ]
  },
  ... other users

也是:阅读这个:https://www.elastic.co/guide/en/elasticsearch/guide/current/modeling-your-data.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30762479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档