我们希望使用Algolia Search来查找应用程序。我们喜欢Algolia的便利,但仍然坚持一点。我们有自定义用户组,每个用户组只能看到记录的子集。当我们将记录推送到Algolia时,所有记录都会显示出来。我们如何将其与特定用户的自定义逻辑配对可以查看特定记录,我们不会将其显示在搜索列表中。
答案 0 :(得分:5)
处理此用例的最佳方法是直接在记录(例如组或用户)内编码权限信息。例如,您可以在记录上添加权限数组:
"permission": ["group1", "user42"]
然后,您只需要在faceting的属性列表中添加此权限属性,并通过facetFilters参数在查询中应用限制。
我还建议使用允许以安全方式应用此限制的secured-API key功能,即使查询来自浏览器或移动应用也是如此。在API密钥和限制之间的后端计算HMAC-SHA 256签名,以确保没有人可以更改此限制。