Elasticsearch过滤结果不包括id

时间:2015-09-18 20:21:46

标签: lucene elasticsearch

我需要返回不包含某些ID的文档的结果。 Elasticsearch允许我们指定允许哪些ID,但我认为无法禁止某些ID。在我的情况下,我想不返回用户已经看过的内容,因此每个用户的列表都不同。

1 个答案:

答案 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
            ]
          }
        }
      ]
    }
  }
}