Не удается определить индекс типа даты в elastisearch - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть документ, отправленный вasticsearch, который выглядит примерно так:

{
    "created": 1543247749419,
    "name": "something",
    "person": {
        "created": 1543247012491,
        ...
    }
}

Оба поля created имеют формат epoch_millis даты (метка времени в миллисекундах).Я пробовал в основном 3 вещи:

  1. Добавить документ, используя curl, вот так:

curl -H "Content-Type: application/json" -X POST "http://ipaddress:9200/somedb" -d "@/some/path"

Пока все хорошо, но индекс установлентип моего created как long, а не date.

Скопируйте индекс из интерфейса Kibana, измените long на date и создайте для него новую базу данных:

{"mapping": {"somedb2": {"properties": {" созданный ": {" тип ":" дата "," формат ":" x "},

и отправьте данные следующим образом:

curl -H "Content-Type: application/json" -X POST "http://ipaddress:9200/somedb2" -d "@/some/path"

Затем я получил это сообщение об ошибке отasticsearch

 { "error": {
      "root_cause": [
           {
               "type": "mapper_parsing_exception",
               "reason":"Root mapping definition has unsupported parameters:  [mapping : {properties={created={type=date, format=x}, 

Сейчас я действительно не знаю, что делать.Поиск в interwebz в основном говорит только о разделе форматирования, а не о настройке или создании индекса.Нужен ли мне плагин для эластичного поиска для обработки даты?

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Я разобрался.

Похоже, что команда curl, которую я сделал, имела ошибку в используемом dbname и названии, используемом в маппере.В JSON тоже была ошибка, усложняющая понимание.Сейчас работает изящно.Я также изменил format на epoch_millis вместо x.

Теперь он работает как шарм и сделал мою первую панель в Кибане.

0 голосов
/ 03 декабря 2018

JSON (который является форматом данных ElasticSearch) не имеет явного формата даты, они всегда обрабатываются как строки, даже когда доставляются другим способом.

Так что, на самом деле, если вы делаетеНЕ указывайте формат даты, эта опция принимается во внимание: "strict_date_optional_time || epoch_millis", что является эпохой миллис, что опять-таки правильно в вашем случае.

Вот почему все говорят только о форматировании, а неконвертирование;)

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