在elasticsearch中存储如下格式的数据是否合理?

我的搜索筛选条件包括用户的一些属性和用户发表的文章。
我的需求是通过条件搜索能快速定位到作者。
那我可以不可以在elasticsearch中存储如下格式的数据,是否合理?
这样一个对象是不是有点太大了?
若不是用这种方式存储,应该用什么方式存储和查询比较好。

{
    "user_name":"张三",
    "user_level":"新兵",
    "user_score":5500,
    "user_article":[
        {
            "id":1,
            "article_title":"java笔记(一)",
            "article_content":"xxxxxxxxxxxx..."
        },
        {
            "id":2,
            "article_title":"java笔记(二)",
            "article_content":"xxxxxxxxxxxx..."
        },
        ......(中间有近万条记录)
        {
            "id":15200,
            "article_title":"php笔记(十五)",
            "article_content":"xxxxxxxxxxxx..."
        }
    ]
}
,
{
    "user_name":"李四"
    ...
}
...(有N多个用户)
阅读 3k
2 个回答

你这个存储模型有个问题就是,子对象user_article会平铺,丢失对象内部属性的关联关系。可以考虑用nest嵌套模型。

考虑这样~

{
    "user_name":"张三",
    "user_level":"新兵",
    "user_score":5500,
    "id":1,
    "article_title":"java笔记(一)",
    "article_content":"xxxxxxxxxxxx..."
},{
    "user_name":"张三",
    "user_level":"新兵",
    "user_score":5500,
    "id":15200,
    "article_title":"php笔记(十五)",
    "article_content":"xxxxxxxxxxxx..."
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题