Algolia即时排名

时间:2017-05-12 19:12:48

标签: algolia

我有成千上万首音乐曲目的索引。为了搜索,我想通过曲目标题升序返回曲目。

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

因此,对于我在查询之前的常规艺术家/标题搜索,我会运行:

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

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

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

我的问题是:这是否具有表现力?对每个查询执行此操作是否有任何不足之处?

感谢您的建议!

1 个答案:

答案 0 :(得分:6)

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

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

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