Algolia 多租户算法索引

Algolia 多租户算法索引,algolia,Algolia,我想通过我的用户的数据为他们提供全文搜索,并确保他们只能访问他们自己的数据。在Algolia上有允许这样做的模式吗?我考虑过的解决方案似乎都不合适,所以我想知道我是否忽略了其他一些选择 我们可以在一个单独的Algolia应用程序中托管每个用户的数据,这样每个API密钥只允许访问相关数据,但这将很快变得负担不起,因为许多用户将达到10000条记录的限制 我们可以将每个用户的数据托管在单独的索引中,并使用团队索引限制,但似乎没有API来管理这些数据,而且这无论如何都需要为每个客户提供一个Algoli

我想通过我的用户的数据为他们提供全文搜索,并确保他们只能访问他们自己的数据。在Algolia上有允许这样做的模式吗?我考虑过的解决方案似乎都不合适,所以我想知道我是否忽略了其他一些选择

我们可以在一个单独的Algolia应用程序中托管每个用户的数据,这样每个API密钥只允许访问相关数据,但这将很快变得负担不起,因为许多用户将达到10000条记录的限制

我们可以将每个用户的数据托管在单独的索引中,并使用团队索引限制,但似乎没有API来管理这些数据,而且这无论如何都需要为每个客户提供一个Algolia帐户,这似乎是对服务的滥用(例如,我们可以在我们的域名上生成电子邮件地址)

最后,我们可以使用一些userId过滤查询,以仅检索相关数据,但这并不安全,因为有人可以使用apikey查询algolia而不使用过滤器。 我们可以代理algolia调用来注入过滤器和api密钥,但性能代价可能很高


还有其他建议吗?谢谢

我从Algolia的rayrutjes那里得到了一个很好的答案,所以我将它粘贴在这里,以防万一:

对于您的用例来说,最好的方法是使用我们称之为生成的API键。以下是JavaScript客户端的文档:

用法相当简单,您可以根据搜索API键+一些额外的查询参数动态生成API键

生成的API键可以像标准搜索API键一样使用,不同之处在于它可以限定在给定的一组参数上

请注意,生成这样一个作用域API键并不需要实际调用API

还要确保在后端生成这些作用域API键,因为在这种情况下,您不想公开用于生成它们的搜索API键


我从Algolia的rayrutjes那里得到了一个很好的答案,所以我将它粘贴在这里以防:

对于您的用例来说,最好的方法是使用我们称之为生成的API键。以下是JavaScript客户端的文档:

用法相当简单,您可以根据搜索API键+一些额外的查询参数动态生成API键

生成的API键可以像标准搜索API键一样使用,不同之处在于它可以限定在给定的一组参数上

请注意,生成这样一个作用域API键并不需要实际调用API

还要确保在后端生成这些作用域API键,因为在这种情况下,您不想公开用于生成它们的搜索API键


嗨,沃德!这是一个很好的问题,但与StackOverflow无关,因为它与编程无关。你能把它贴在Algolia论坛上吗?我会确定地址的。@Josh你说得对。完成!如果您考虑使用多APP解决方案,我建议您这个网站来管理您的应用程序。目前,您只能将源应用复制到目标应用中(完整复制、仅设置复制或仅数据复制),并清除您选择的环境。希望对你有帮助。你好!这是一个很好的问题,但与StackOverflow无关,因为它与编程无关。你能把它贴在Algolia论坛上吗?我会确定地址的。@Josh你说得对。完成!如果您考虑使用多APP解决方案,我建议您这个网站来管理您的应用程序。目前,您只能将源应用复制到目标应用中(完整复制、仅设置复制或仅数据复制),并清除您选择的环境。希望这会有帮助。