ElasticSearch中的文档访问控制

时间:2017-05-16 08:45:52

标签: elasticsearch elasticsearch-5

我正在使用ElasticSearch设计我的第一个项目。该系统将容纳大约100,000,000个文档,其中95%是可公开访问的,但只有一个或多个用户可以看到5%的文档。用户将查询其私人数据以及公共数据。在不影响公共数据搜索性能的情况下,限制访问私有数据的首选方法是什么?我想在所有私人文档中添加用户ID,然后在所有公共搜索中排除这些文档都不会有助于提高性能?我是否应该使用多个索引(或类型)并将公共搜索限制为公共索引?

1 个答案:

答案 0 :(得分:1)

我肯定会将5M私有文档放在单独的索引中,然后使用别名只包含公共索引(public别名)或私有索引和公共索引(all别名)在搜索中。

您还可以在文档中添加private布尔字段(true / false)(所有存储在同一索引中),但如果由于某种原因您忘记包含a,则会冒泄漏信息的风险term在您的一个或多个查询中对该字段进行查询+您可能最终完成的所有聚合。