我有一个在本地运行的弹性搜索引擎,其索引包含来自多个客户的数据。当客户进行查询时,是否有办法在过滤条件中动态添加客户ID,以便客户无法访问其他客户的记录。
答案 0 :(得分:3)
是的,您可以使用filtered aliases实现这一目标。所以你要为每个客户创建一个这样的别名:
POST /_aliases
{
"actions" : [
{
"add" : {
"index" : "customer_index",
"alias" : "customer_1234",
"filter" : { "term" : { "customer_id" : "1234" } }
}
}
]
}
然后,您的客户可以简单地查询别名customer_1234
,只有他的数据会回来。