строка запроса и тип вложенный (asticsearch) - PullRequest
0 голосов
/ 16 мая 2019

Это мое отображение:

{
  "name": {
    "type": "text",
  },
  "my_array": {
    "type": "nested",
    "properties": {
      "first": {
        "type": "text",
      },
      "last": {
        "type": "text",
      }
    }
  }
}

Документ 1:

{
  "my_array": [
    { "first": "John", "last": "Smith" },
    { "first": "Alice", "last": "White" }
  ]
}

Документ 2:

{
  "name": "John"
}

Есть ли способ сделать эту строку запросазапрос возврата обоих документов без использования вложенного запроса ?

{
  "query": {
    "query_string": {
      "query": "John"
    }
  }
}

Я использую Elasticsearch 6.4.

1 Ответ

0 голосов
/ 16 мая 2019

Да, вы можете вложить запрос query_string в запрос nested, который работает с обоими вложенными полями, например:

POST test/_search
{
  "query": {
    "bool": {
      "minimum_should_match": 1,
      "should": [
        {
          "nested": {
            "path": "my_array",
            "query": {
              "query_string": {
                "default_field": "my_array.*",
                "query": "John"
              }
            }
          }
        },
        {
          "query_string": {
            "default_field": "name",
            "query": "John"
          }
        }
      ]
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...