OpenSearch技术问询:如何通过tags查询屏蔽用户禁访的文档
如何编写OpenSearch查询过滤用户禁止访问的文档
你可以通过布尔查询(bool query)结合must_not子句来实现需求,直接排除用户禁止列表中internal_id对应的文档。
假设用户的禁止ID列表是[123],对应的查询语句如下:
{ "query": { "bool": { "must_not": [ { "terms": { "internal_id": [123] } } ] } } }
关键说明:
bool.must_not:定义需要排除的文档条件,匹配该条件的文档会被从检索结果中剔除terms查询:用于匹配字段值落在指定列表内的文档,这里会匹配internal_id等于禁止列表中任意ID的文档,再通过must_not排除这些文档
如果用户的禁止ID列表包含多个值(比如[123, 456, 789]),只需替换列表内容即可:
{ "query": { "bool": { "must_not": [ { "terms": { "internal_id": [123, 456, 789] } } ] } } }
内容的提问来源于stack exchange,提问作者duhaime
相关产品推荐
相关产品推荐

