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
我有数千首音乐曲目的索引。对于搜索,我希望曲目按曲目标题升序排列 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