1

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

我在弹性搜索搜索中索引了员工数据

EMP ID FNAME LNAME COUNTRY 组织 Other 50 与 Employee 相关的属性

1 Jayesh Bhoyar 美国 ABC

2 Tapan pal 美国 ABC

3 Ajay 美国 ABC

4 Ravi Verma 韩国 ABC

7 Pankaj Pal 韩国 ABC

5 Sundar Lal 日本 ABC

6 rahul Sri 日本 ABC

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

User1 - 可以访问美国

User2 - 可以访问美国、日本

User3 - 可以访问美国、韩国

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

用户 1

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

EMP ID FNAME LNAME COUNTRY 组织 Other 50 与 Employee 相关的属性

1 Jayesh Bhoyar 美国 ABC

2 Tapan pal 美国 ABC

3 Ajay 美国 ABC

XXX XXX XXX 韩国 XXX XXXXXXXXX

XXX XXX XXX 韩国 XXX XXXXXXXXX

XXX XXX XXX 日本 XXX XXXXXXXXX

XXX XXX XXX 日本 XXX XXXXXXXXX

用户 2

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

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

EMP ID FNAME LNAME COUNTRY 组织 Other 50 与 Employee 相关的属性

1 Jayesh Bhoyar 美国 ABC

2 Tapan pal 美国 ABC

3 Ajay 美国 ABC

XXX XXX XXX 韩国 XXX XXXXXXXXX

XXX XXX XXX 韩国 XXX XXXXXXXXX

5 Sundar Lal 日本 ABC

6 rahul Sri 日本 ABC

用户 3

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

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

EMP ID FNAME LNAME COUNTRY 组织 Other 50 与 Employee 相关的属性

1 Jayesh Bhoyar 美国 ABC

2 Tapan pal 美国 ABC

3 Ajay 美国 ABC

4 Ravi Verma 韩国 ABC

7 Pankaj Pal 韩国 ABC

XXX XXX XXX 日本 XXX XXXXXXXXX

XXX XXX XXX 日本 XXX XXXXXXXXX

有什么方法可以通过脚本或跨度或弹性搜索中内置的其他东西来实现

4

1 回答 1

0

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

于 2017-12-01T17:30:20.683 回答