Elasticsearch запрашивает несколько подполей - PullRequest
0 голосов
/ 30 октября 2019

Мне любопытно, если кто-нибудь знает, как запросить несколько подполей в индексе Elasticsearch. Например, записи:

{
  "foo": [
    {
      "bar": "Good example",
      "subfield":  32
    }
  ]
},
{
  "foo": [
    {
      "bar": "Good example",
      "subfield":  50
    }
  ]
},
{
  "foo": [
    {
      "bar": "Bad example",
      "subfield":  32
    }
  ]
}

Я надеюсь построить запрос foo.bar = "Good example" AND foo.subfield = 32, в котором возвращается только первая запись. DSL или строка запроса Elasticsearch приветствуются.

1 Ответ

1 голос
/ 30 октября 2019

Вы хотите вложенный запрос .

{
  "query": {
    "nested": {
      "path": "foo",
      "query": {
        "bool": {
          "must": [
            { "term": { "foo.bar": "Good example" } },
            { "term": { "foo.subfield": 32 } }
          ]
        }
      }
    }
  }
}

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

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