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 в [фильтре].


person Senorihl    schedule 14.09.2017    source источник
comment
filter должен быть внутри query bool. Обратитесь к этому: elastic.co/guide/en /elasticsearch/reference/current/   -  person Praneeth    schedule 14.09.2017


Ответы (1)


Вы можете использовать что-то вроде этого.

GET /my_index/persons/search
{
  "query": {
    "bool": {
      "must": [
        {"term": {
          "name": {
            "value": "john doe"
          }
        }}
      ],
      "must_not": [
        {"term": {
          "_id": {
            "value": "1"
          }
        }}
      ]
    }
  }
}
person Hatim Stovewala    schedule 14.09.2017
comment
Отлично, это сработало для меня, я думаю, у меня были проблемы, потому что я использую elastic5 - person Senorihl; 14.09.2017
comment
Чем новее, тем лучше! - person Hatim Stovewala; 14.09.2017