Смещение запроса в inner_hits ,asticsearch - PullRequest
0 голосов
/ 10 июля 2019

Я пытаюсь написать поисковый запрос, который соответствует полю вложенного объекта, но только тем, которые являются первым элементом в массиве ( тип вложенного ).

Пример данных:

"_source": {
  ...
  "status": [
    {
      "@timestamp": "2019-07-09T16:08:45.779Z",
      "ad_user": "jgross",
      "message": "ergregergergegegregregregrege",
      "status": "ACKNOWLEDGE"
    },
    {
      "@timestamp": "2019-07-09T01:09:40.719305Z",
      "ad_user": "__elastic",
      "message": "Initial status",
      "status": "ACTIVE"
    }
  ]
},

Таким образом, этот документ не должен совпадать, поскольку первый элемент в массиве имеет статус ACKNOWLEDGE , а не ACTIVE .

Запрос:

"query": {
  "nested": {
  "path": "status",
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "status.status": "ACTIVE"
          }
        }
      ]
    }
  },
  "inner_hits": {}
 }
}

Результат:

"hits": [
  {
    "_index": "watches-logs",
    "_type": "_doc",
    "_id": "o4BH1GsBaUeb2kAfclb-",
    "_nested": {
      "field": "status",
      "offset": 1
    },
    "_score": 0.4088956,
    "_source": {
      "@timestamp": "2019-07-09T01:09:40.719305Z",
      "ad_user": "__elastic",
      "message": "Initial status",
      "status": "ACTIVE"
    }
  },
  ...
]

Есть ли способ добавить другой оператор сопоставления, который соответствует offest: 0 или как-то еще?

Я уверен, что мог бы использовать безболезненный сценарий, но это кажется дорогим, поэтому я сначала хотел попробовать другие способы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...