【发布时间】:2018-05-27 13:21:03
【问题描述】:
我有一个在本地运行的弹性搜索引擎,其索引包含来自多个客户的数据。当客户进行查询时,是否有办法在过滤条件中动态添加客户 ID,以便客户无法访问其他客户的记录。
【问题讨论】:
标签: elasticsearch
我有一个在本地运行的弹性搜索引擎,其索引包含来自多个客户的数据。当客户进行查询时,是否有办法在过滤条件中动态添加客户 ID,以便客户无法访问其他客户的记录。
【问题讨论】:
标签: elasticsearch
是的,您可以使用filtered aliases 来实现。因此,您可以像这样为每个客户创建一个别名:
POST /_aliases
{
"actions" : [
{
"add" : {
"index" : "customer_index",
"alias" : "customer_1234",
"filter" : { "term" : { "customer_id" : "1234" } }
}
}
]
}
然后您的客户可以简单地查询别名customer_1234,并且只会返回他的数据。
【讨论】:
customer_1234 只是一个示例,您可以使用 UUID 作为别名。