Algolia 动态自定义排名

Algolia Custom Ranking on the Fly

我有数千首音乐曲目的索引。对于搜索,我希望曲目按曲目标题升序排列 return。

我还有 created_at 字段,它是我将曲目添加到库的日期时间。我可以即时更改排名吗?

所以对于我在查询之前的正常艺术家/标题搜索,我会 运行:

index.setSettings({
  ranking: [
    "asc(title)",
    "asc(artist)"
  ]
});

然后当我想 return 我最近添加到数据库中的曲目时,我会 运行:

index.setSettings({
  ranking: [
    "desc(created_at)",
    "asc(title)",
    "asc(artist)"
  ]
});

我的问题是:这是高效的吗?对每个查询执行此操作是否有任何缺点?

谢谢指教!

Algolia 在索引时而不是查询时对数据进行排序。这就是为什么您必须使用 setSettings 方法的原因。如果这样做,每次设置新设置时都会重新计算所有数据。

解决方案是使用副本。它们是主索引的副本,排序不同。

您可以在此处找到相关文档: https://www.algolia.com/doc/guides/relevance/sorting/#multiple-sorting-strategies