Как изменить тип данных поля загруженного набора данных с Text на Date - PullRequest
0 голосов
/ 23 сентября 2019

Я новичок в стеке ELK и работаю с небольшим проектом, в котором я пытаюсь визуализировать фальшивые отзывы из набора данных обзоров.Я загрузил набор данных, который состоит из таких полей, как цена продукта, оценка отзыва и дата проверки и т. Д. Поскольку все они представлены в текстовом формате, я сталкиваюсь с некоторыми трудностями при составлении из них графика.Мне нужна помощь, чтобы преобразовать дату обзора из текста в формат даты.

Значения в поле имеют формат

"21-02-2009"
"22-02-2009"
..

Все они представлены в строковом формате.Я хотел преобразовать их в формат даты

Я пытался выполнить следующий запрос

PUT softwarerevs/_mapping?include_type_name=true
{
  "properties": {
    "Time": {
      "format": "dd-MM-yyyy HH:mm:ss",
      "type" : "date"
    }
  }
}

Но я получаю следующую ошибку

{
  "error": {
    "root_cause": [
      {
        "type": "action_request_validation_exception",
        "reason": "Validation Failed: 1: mapping type is missing;"
      }
    ],
    "type": "action_request_validation_exception",
    "reason": "Validation Failed: 1: mapping type is missing;"
  },
  "status": 400
}

Может кто-нибудь помочь мнес этим.

Заранее спасибо

1 Ответ

0 голосов
/ 23 сентября 2019

Вы можете использовать logstash для переиндексации данных с помощью некоторых фильтров.Для фильтрации поля даты вы можете использовать плагин фильтра даты.

Ниже представлен формат

    date {
       match => [ sourcefield , <date-format> ]
       target => destinationfield
    }

, здесь вы можете найти документацию

Пример файла конфигурации

input {
    elasticsearch {
        hosts => "host
        index => "index"
        query => '{ "query": { "match_all": {} } }'
        scroll => "20m"
        docinfo => true
    }
}
filter {
    date {
           match => [ sourcefield , <date-format> ]
           target => destinationfield
    }
}
output {
    elasticsearch {
        hosts => "host"
        index => "new-index"
}
...