ElasticSearch отображение вложенных полей не работает (возвращает 0 результатов) - PullRequest
0 голосов
/ 15 января 2020

У меня есть этот шаблон индекса, созданный с помощью Dynami c mapping

PUT test_index
{
  "mappings": {
    "dynamic_templates": [
      {
      "parents": {
        "match": "parents",
        "match_mapping_type": "object",
         "mapping": {
           "type": "nested"
         } 
      }
      }
    ]
  }
}

А вот пример данных

POST test_index/_doc
{
  "parents": [
      {
        "sku": "1234",
        "name": "shirt"
      },
      {
        "sku": "12345",
        "name": "pants"
      },
      {
        "sku": "12346",
        "name": "shoes"
      }
  ]
}

Как видите, «родители» Поле представляет собой массив, который имеет несколько объектов, которые имеют 2 поля. Я сделал это «вложенным» типом, потому что я хочу сохранить связь полей.

Но когда я пытаюсь выполнить этот запрос, я получаю 0 результатов ...

GET test_index/_search
{
  "query": {
    "exists": {
      "field": "parents"
    }
  }
}

I получить 0 результатов. Почему это?

Я также пробовал это отображение, но оно все еще не работает

PUT test_index
{
  "mappings": {
    "dynamic_templates": [
      {
      "parents": {
        "match": "parents",
        "match_mapping_type": "object",
         "mapping": {
           "type": "nested",
           "properties": {
             "sku": {
               "type": "keyword"
             },
             "name": {
               "type": "keyword"
             }
           }
         } 
      }
      }
    ]
  }
}

Что мне здесь не хватает?

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