У меня есть индекс по имени attachment_test и отображение ниже:Elasticsearch: тип полей отображения отличается от типа в результате запроса
Я индексируется его, как использовать данные JSon ниже:
{"goods_id": 67,"sold_num_day90": "25","created_at": "1455575376","current_day": "20160215","sold_num_day3": "0","sold_num_day30": "15","sold_num_day7": "0"}
Эти данные являются surrounde d цитатой, кроме поля goods_id. Почему эти строки не преобразовывались автоматически?
спасибо.
Вы имеете в виду, что котировки в Lucene отсутствуют в этих сценариях? Я пытаюсь индексировать использование данных в файлах HDFS. Эти данные могут быть любого типа. –
Кавычки - это просто способ JSON, чтобы обозначить, что вы указали строковое значение в своем документе. ES примет это строковое значение (например, «1455575376») и приложит все усилия, чтобы принудить это строковое значение к типу, который вы указали в своем сопоставлении (например, 'long'). Если это будет хорошо, Lucene будет индексировать длинное значение, иначе ES жалуется и выдает исключение. Итак, то, что вы видите в своем источнике JSON и то, что в конечном итоге индексировано в Lucene **, может быть ** различным. Лучшая практика заключается в том, чтобы всегда создавать JSON с теми же типами, которые вы декларируете в своем сопоставлении (т. Е. В вашем случае нет кавычек вокруг длинных номеров). – Val