我在后端运行PostgreSQL和Solr,并且在前端使用EmberJS和ember-data。
在PostgreSQL中,我有多对一的关系,其中一篇文章可以有很多视频链接。 Ember-data要求以下列格式返回:
{
articles: {
//Some number of articles
},
videos: {
//Videos that belong to those articles
}
}
现在我打算做的是从数据库导入Solr以允许搜索数据。这是我开始困惑的地方。
我认为最好的方法是分别为视频制作核心并为文章制作核心,然后分别导入两个核心。但是,我是Solr的新手,并且不确定是否拥有多个核心是处理多对一关系的规范方式。
此外,据我所知,在查询哪个构建JSON时,你不能在两个核上进行连接,而ember需要它来接受多个查询,这对我来说似乎是错误的。 / p>
如何在Solr中正确表示多对一关系?
答案 0 :(得分:1)
这取决于您要搜索的内容。但是,当将关系数据库中的数据导入像Solr这样的基于文档的存储时,最常规的方法是将数据非规范化或扁平化为单个文档集合。在这种情况下,假设您要搜索文章(例如文章标题),您可能希望有一个集合,其中的文档看起来像这样
{
article_title: "<title_string>",
article_link: "<article_link1>",
videos: ["<video_link1>","<video_link2>",...]
}