我是Algolia的新手,在索引时我对如何构建数据感到困惑。
我的本地数据库中有两个名为“Films”和“Categories”的模型,它们通过数据透视表连接来管理多对多关系。
我希望用户能够通过电影标题进行搜索,然后将类别作为过滤器,但我也希望用户能够浏览类别。
如果我创建两个名为Films and Categories的索引,它们将如何相关? algolia如何知道哪些电影属于哪些类别?
文档似乎不清楚:https://www.algolia.com/doc/guides/indexing/structuring-your-data/
谢谢
Ben
在你的情况下你想要的是搜索Film
。您必须将索引视为非关系数据库,以便您搜索唯一的实体。它与关系数据库非常不同,并没有起到同样的作用。
所以你不需要创建两个索引,只需要一个包含Film数据的索引(作为名称,描述......)和电影类别。
您的数据结构应如下所示:
[
{
"name": "A Movie",
"categories": [
"Comedy",
"Action"
]
},
{
"name": "Another Movie",
"categories": [
"Horror",
"Action"
]
}
]
这里name
和categories
可以是可搜索的属性。而categories
将是一个方面,允许您按类别过滤。