如何不以特定 id 为条件不在 DSL 查询中搜索

How to put not condition on particular id's not to search in DSL query

这是elasticsearch的字典模式 {'id': 3},{'id': 4},{'id': 5},{'id': 6}

下面是要搜索 'Country Owner.id.keyword' 和 'Territory Owner.id.keyword'

的查询
a = {'from': 0, 'size': 200,'query': {
    'bool': {
      'should': [                              
        {
          'terms': {
            'Country Owner.id.keyword': [
              'ABC101'
            ]
          }
        },
        {
          'terms': {
            'Territory Owner.id.keyword': [
              'ABC101'
            ]
          }
        }
      ]
    }
  }
}

您可以在 must_not 子句中使用 terms query

{
  "query": {
    "bool": {
      "should": [
        {
          "terms": {
            "Country Owner.id.keyword": [
              "ABC101"
            ]
          }
        },
        {
          "terms": {
            "Territory Owner.id.keyword": [
              "ABC101"
            ]
          }
        }
      ],
      "must_not": {
        "terms": {
          "id": [
            3,
            4,
            5
          ]
        }
      }
    }
  }
}