Нарушение родительско-дочерних отношений Elasticsearch изменено с 2.4 на 6.2

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

индекс1:

{
  "XX": {
    "date_detection": true,
    "_parent": {
      "type": "versiontest"
    },
    "properties": {
      "curatedBy": {
        "type": "keyword",
        "index": "true"
      }
    }
  }
}

индекс2:

{
  "YY": {
    "date_detection": false,
    "properties": {
      "versionnumber": {
        "type": "keyword"
      },
      "versiondate": {
        "type": "date",
        "format": "yyyy/MM/dd HH:mm:ss"
      }
    }
  }
}

Теперь я изменил дочерний индекс со следующими изменениями в соответствии с документацией ES 6.2.

{
  "XX": {
    "date_detection": true,
    "properties": {
      "my_join_field": {
        "type": "join",
        "relations": {
          "YY": "XX"
        }
      },
      "curatedBy": {
        "type": "keyword",
        "index": "true"
      }
    }
  }
}

Но я вижу следующую ошибку, когда пытаюсь создать родительский и дочерний индекс и отправить документы.

java.lang.IllegalArgumentException: отклонение обновления сопоставления для [XXtest], поскольку окончательное сопоставление будет иметь более 1 типа: [XX, YY]

Может кто подскажет, что здесь не так?


person Abhi.G    schedule 27.03.2018    source источник


Ответы (1)


Меня немного смущает верхний «ХХ» — тип не имеет никакого отношения к отношениям. Теперь вы должны использовать тип _doc, что упростит миграцию в 7.0 (тогда этот тип будет необязательным в API).

IMO ваше сопоставление должно выглядеть примерно так:

PUT my-index
{
  "mappings": {
    "_doc" : {
      "properties": {
        "my_join_field": {
          "type": "join",
          "relations": {
            "my-parent": "my-child"
          }
        },
        "curatedBy": {
          ...
        }
      }
    }
  }
}

И тогда вы можете индексировать данные:

PUT my-index/_doc/parent1
{
  "curatedBy" : "...",
  "my_join_field": {
    "name": "my-parent"
  }
}
PUT my-index/_doc/child1?routing=parent1
{
  "curatedBy" : "...",
  "my_join_field": {
    "name": "my-child",
    "parent": "parent1"
  }
}
person xeraa    schedule 27.03.2018