一尘不染

Elasticsearch过滤结果按ID排除

elasticsearch

我需要返回不包含具有特定ID的文档的结果。Elasticsearch允许我们指定允许使用哪些ID,但是我看不到任何禁止某些ID的方法。在我的情况下,我不想返回用户已经看到的内容,因此每个用户的列表都不同。


阅读 848

收藏
2020-06-22

共1个答案

一尘不染

您可以通过添加一个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
            ]
          }
        }
      ]
    }
  }
}
2020-06-22