在弹性搜索中保护数据

时间:2018-05-26 16:44:33

标签: elasticsearch

我有一个在本地运行的弹性搜索引擎,其索引包含来自多个客户的数据。当客户进行查询时,是否有办法在过滤条件中动态添加客户ID,以便客户无法访问其他客户的记录。

1 个答案:

答案 0 :(得分:3)

是的,您可以使用filtered aliases实现这一目标。所以你要为每个客户创建一个这样的别名:

POST /_aliases
{
    "actions" : [
        {
            "add" : {
                 "index" : "customer_index",
                 "alias" : "customer_1234",
                 "filter" : { "term" : { "customer_id" : "1234" } }
            }
        }
    ]
}

然后,您的客户可以简单地查询别名customer_1234,只有他的数据会回来。