Какова альтернатива es.mapping.timestamp в ElasticSearch 7.x?

Официальная документация для ElasticSearch гласит:

Имя поля/свойства документа, содержащее отметку времени документа. Чтобы указать константу, используйте формат. Не будет работать с версиями индекса Elasticsearch 6.0+, но поддержка будет продолжаться для версий индекса 5.x и ниже.

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

org.elasticsearch.hadoop.EsHadoopIllegalArgumentException: нельзя использовать временные метки в запросах индекса/обновления в ES 6.x и выше. Удалите настройку [es.mapping.timestamp].

Код, который я пробовал:

df.write.format(org.elasticsearch.spark.sql).config(es.mapping.timestamp,timestamp)mode(overwrite).save(indexname/doc)

timestamp — это поле в фрейме данных Spark. Я также пробовал это с saveToE и получил ту же ошибку. Могу ли я сделать это в ElasticSearch 7.x, используя любое другое поле?


person Ritwik Bandyopadhyay    schedule 16.12.2020    source источник


Ответы (1)


Я не слишком знаком со Spark, но метаполе _timestamp устарело, поэтому вам придется использовать date поле, которое будет определено в сопоставлении ES — в зависимости от вашей спецификации его формат может быть либо epoch_second, либо epoch_millis:

PUT your_index_name
{
  "mappings": {
    "properties": {
      "timestamp": {
        "type": "date",
        "format": "epoch_second"
      }
    }
  }
}

После этого, я полагаю, вам больше не понадобится .config("es.mapping.timestamp","timestamp"), потому что значения timestamp в ваших документах будут напрямую анализироваться в ES как поля date, поддерживающие соответствующие запросы даты.

person Joe Sorocin    schedule 16.12.2020
comment
Спасибо за это. Таким образом, нет никакого способа указать это непосредственно из моего кода, который генерирует данные? Мне пришлось бы пройти через этот API - person Ritwik Bandyopadhyay; 17.12.2020
comment
Ну, вы бы установили это сопоставление один раз и только один раз. Вопрос в том, переходите ли вы на 7.x в том смысле, что начинаете заново и переиндексируете все? - person Joe Sorocin; 17.12.2020