我正在尝试在ElasticSearch(嵌套)中实现查询,在该查询中,仅返回满足某些限制的文档。每个文档将具有一个字符串数组(Restrictions),并且还将向查询提供一个字符串数组(我们称之为“ satisfiedRestrictions”),目标是仅检索(过滤)仅具有指定限制的那些文档在“ satisfiedRestrictions”中
让我说我有文件
std::future
鉴于[
{
"Id":1,"Restrictions":["restriction1","restriction2"]
},{
"Id":2,"Restrictions":["restriction1"]
},{
"Id":3,"restriction2","restriction3"]
}
]
,查询应返回ID为1和2的文档。文档3具有satisfiedRestrictions = ["restriction1","restriction2"]
参数中未指定的额外限制(“ restriction3”),因此应从结果中排除该限制。
可以通过satisfiedRestrictions
子句解决此问题(必须不匹配“ restiction3”),但是这将假定所有可能的限制值都应保存在某个地方。理想的解决方案是不必这样做。
是否有很好的方法来实现这一目标,或者这种基于限制的模型无法解决?