2016-04-22 53 views
4

我正在使用laravel php来构建一个web应用程序,并将algolia用作搜索服务。然而,我不能在其他表中使用基于数据透视表和外部ID的algolia返回结果。因此,我的问题是,algolia目前不支持枢轴表和关系表吗?或者我没有做到这一点,这是完全正确的我的错? 非常感谢你提前Algolia支持枢轴表和关系表吗?

回答

6

搜索引擎最初不是为处理关系而设计的:它是数据库做得很好的事情,但它在查询时间成本很高。

由于性能方面的原因,Algolia引擎不支持这种类型的关系。因此,最好的方法是在将数据推送到Algolia之前将数据非规范化。

例子:

你有users(id, name) &一个posts(id, author_id, content) SQL表,你想搜索到的职位,同时显示帖子内容和作者的名字都。

您应该在您身边执行JOIN以解决作者的姓名,并将一个{ "objectID": 42, "content": "...", "author_name": "<fetched from users table>" }对象推送给Algolia。