我想知道有什么方法可以从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
我们有什么方法可以通过脚本或跨度或其他在弹性搜索中构建的东西来实现这个目标
答案 0 :(得分:0)
通常,你应该在你的后端执行而不是弹性搜索。第一步是获取权限数据,第二步是使用依赖于第一步的过滤器构建查询。