我有一个产品索引。它们具有ID,名称,品牌等常规字段。查询此索引非常有效,但是我想限制为特定用户返回的产品。
说我有5个ID介于1-5之间的产品
Id: 1, name: “Product One”, brand: “Fake Brand”
Id: 2, name: “Product Two”, brand: “Fake Brand”
Id: 3, name: “Product Three”, brand: “Fake Brand”
Id: 4, name: “Product Four”, brand: “Fake Brand”
Id: 5, name: “Product Five”, brand: “Fake Brand”
如果没有过滤器,并且我搜索品牌:“假品牌”,则会得到5条结果。
但是我想添加此功能:说我有两个用户。用户1仅能“看到”产品ID 1、2和5。用户2仅能“看到”另一个子集,例如产品ID 1、2、4和5。
因此,如果用户1搜索品牌:“假品牌”,则他只会获得ID为1、2和5的产品。就好像用户2搜索品牌:“假品牌”时,他只会获得ID为1的产品。 ID 1、2、4和5。
是否可以在此产品查询中添加“用户ID”,然后在其他地方存储用户可以看到哪些产品?
在SQL中,我可能会有一个不同的表来存储每个用户可以看到的产品,然后进行联接。但是使用ES我想我要么必须拥有两个单独的索引,要么要使用嵌套查询或has_child / has_parent查询,但我不确定如何实现它。