elasticsearch中的数据屏蔽

时间:2017-12-01 16:55:52

标签: elasticsearch search data-masking

我想知道有什么方法可以从elasticsearch inbuild功能中实现以下用例。

我在elasticsearch search

中索引了员工数据
  

EMP ID FNAME LNAME COUNTRY组织其他50个属性   与员工相关联

     

1 Jayesh Bhoyar美国ABC

     

2 Tapan pal美国ABC

     

3 Ajay United States ABC

     

4 Ravi Verma Korea ABC

     

7 Pankaj Pal Korea ABC

     

5 Sundar Lal日本ABC

     

6 rahul Sri Japan ABC

现在我们有4个用户及其访问级别:

User1 - 可以访问美国

User2 - 可以访问美国,日本

User3 - 可以访问美国,韩国

User4 - 可以访问美国,日本,韩国

用户1

  

现在,当用户1搜索ABC时,他应该得到7个结果,但输出应该   如下:

     

EMP ID FNAME LNAME COUNTRY组织其他50个属性   与员工相关联

     

1 Jayesh Bhoyar美国ABC

     

2 Tapan pal美国ABC

     

3 Ajay United States ABC

     

XXX XXX XXX韩国XXX XXXXXXXX

     

XXX XXX XXX韩国XXX XXXXXXXX

     

XXX XXX XXX Japan XXX XXXXXXXX

     

XXX XXX XXX Japan XXX XXXXXXXX

用户2

  

现在,当用户2搜索ABC时,他应该得到7个结果,但输出应该   如下:

     

他应该能够看到日本的结果和韩国的结果   被掩盖

     

EMP ID FNAME LNAME COUNTRY组织其他50个属性   与员工相关联

     

1 Jayesh Bhoyar美国ABC

     

2 Tapan pal美国ABC

     

3 Ajay United States ABC

     

XXX XXX XXX韩国XXX XXXXXXXX

     

XXX XXX XXX韩国XXX XXXXXXXX

     

5 Sundar Lal日本ABC

     

6 rahul Sri Japan ABC

用户3

  

现在,当用户3搜索ABC时,他应该得到7个结果,但输出应该   如下:

     

他应该能够看到韩国的结果和日本的结果   被掩盖

     

EMP ID FNAME LNAME COUNTRY组织其他50个属性   与员工相关联

     

1 Jayesh Bhoyar美国ABC

     

2 Tapan pal美国ABC

     

3 Ajay United States ABC

     

4 Ravi Verma Korea ABC

     

7 Pankaj Pal Korea ABC

     

XXX XXX XXX Japan XXX XXXXXXXX

     

XXX XXX XXX Japan XXX XXXXXXXX

我们有什么方法可以通过脚本或跨度或其他在弹性搜索中构建的东西来实现这个目标

1 个答案:

答案 0 :(得分:0)

通常,你应该在你的后端执行而不是弹性搜索。第一步是获取权限数据,第二步是使用依赖于第一步的过滤器构建查询。