在Azure搜索中,我们可以为不同的搜索结果创建多个索引,我们有两种类型的api-键。一个用于管理,另一个用于查询。但是使用相同的api键用户可以搜索所有的索引。
在我的解决方案中,我需要设计一个系统,以便不同的用户使用该系统将得到不同的结果,他们的优势。我认为可以用每个角色的专用索引来解决这个问题,但用户仍然可以查询其他索引(如果他们愿意)。
如何确保每个用户只能搜索特定的索引。
发布于 2015-08-04 07:25:29
不可能限制特定索引的键使用。你得自己做点什么。
另一种可能是创建不同的搜索服务帐户,然后在其中创建索引,而不是有一个帐户。然后,您可以授予用户对适当的搜索服务帐户的访问权限。
更新
根据您的评论,您实际上希望通过用户的角色来限制搜索结果(文档),即比索引更深一级。要实现这一点,您可以做的是将这个角色条件动态地附加到您的搜索查询中,作为OData Filter。例如,假设索引对每种角色类型(管理员、用户等)都有布尔字段。用户搜索某个关键字。然后,您可以做的是创建一个OData Filter $filter,您可以在其中检查这些条件。因此,您的搜索URL将类似于:
https://<search-service-name>.search.windows.net/indexes/<index-name>/docs?search=<search-string>&$filter=Administrator%20eq%20true这样,Service就可以完成所有的过滤,并且您不必在代码中做任何事情。
您可以在这里了解有关查询选项的更多信息:https://msdn.microsoft.com/en-us/library/azure/dn798927.aspx。
https://stackoverflow.com/questions/31803021
复制相似问题