【问题标题】:Canonical way to represent and query many to one relationships in Solr在 Solr 中表示和查询多对一关系的规范方法
【发布时间】:2015-08-28 01:29:59
【问题描述】:

我在后端运行 PostgreSQL 和 Solr,并在前端使用带有 ember-data 的 EmberJS。

在 PostgreSQL 中,我有一个多对一的关系,一篇文章可以有许多视频链接。 Ember-data 要求以以下格式返回:

{
    articles: {
        //Some number of articles
    },
    videos: {
        //Videos that belong to those articles
    }
}

现在我打算从数据库导入 Solr 以允许搜索数据。这就是我开始感到困惑的地方。

我认为最好的方法是分别为视频制作一个核心并为文章制作一个核心,然后也分别导入两个核心。但是,我是 Solr 的新手,我不确定拥有多个内核是否是处理多对一关系的规范方式。

此外,据我所知,查询时不能在两个核心上进行连接,这意味着构建 ember 需要的 JSON 将需要多个查询,这对我来说似乎是错误的。

如何在 Solr 中正确表示多对一关系?

【问题讨论】:

    标签: postgresql search ember.js solr ember-data


    【解决方案1】:

    这取决于您要搜索的内容。但是,当将数据从关系数据库导入到像 Solr 这样的基于文档的存储中时,最规范的方法是将数据非规范化或扁平化到单个文档集合中。在这种情况下,假设您要搜索文章(例如文章标题),您可能希望有一个集合,其中的文档看起来像这样

    {
       article_title: "<title_string>",
       article_link: "<article_link1>",
       videos: ["<video_link1>","<video_link2>",...]
    }
    

    【讨论】:

    • 昨晚我自己也得出了同样的结论,并决定我可以手动将api中的数据重新排列成ember-data想要的形式。我也意识到它不会像我担心的那样对性能非常密集,因为我可能一次只能抓取
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多