我需要返回不包含某些ID的文档的结果。 Elasticsearch允许我们指定允许哪些ID,但我认为无法禁止某些ID。在我的情况下,我想不返回用户已经看过的内容,因此每个用户的列表都不同。
答案 0 :(得分:11)
您可以通过添加bool/must_not
过滤器来实现此目的,其中包含ids
过滤器,其中包含您不希望出现的ID数组,如下所示:
{
"query": {
"bool": {
"must": [
... <--- your other filters go here
],
"must_not": [
{
"ids": {
"values": [
"id1", "id2" <--- add all the ids you DON'T want in here
]
}
}
]
}
}
}