elasticsearch 5:使用exclude进行搜索

时间:2017-09-14 09:34:37

标签: elasticsearch elasticsearch-5

我尝试搜索人的索引(按名字和姓氏),这部分非常简单:

GET /my_index/persons/search
{
    "query": {
        "query_string": {
            "query" : "john doe"
        }
    }
}

此外,我想排除具有特定身份证明的人,我尝试使用filter条款,但我无法正确构建查询,你们可以帮助我吗?

修改

我已经尝试过了

{
    "query":{
        "multi_match":{
            "query":"anne mirande",
            "fields":[
                "first_name",
                "last_name"
            ],
            "type":"cross_fields",
            "operator":"and"
        }
    },
    "filter":{
        "not":{
            "term":{
                "id":1
            }
        }
    }
}

但它会引发这样的结果: [过滤器]中START_OBJECT的未知键。

1 个答案:

答案 0 :(得分:1)

你可以使用这样的东西。

GET /my_index/persons/search
{
  "query": {
    "bool": {
      "must": [
        {"term": {
          "name": {
            "value": "john doe"
          }
        }}
      ],
      "must_not": [
        {"term": {
          "_id": {
            "value": "1"
          }
        }}
      ]
    }
  }
}