У меня есть индекс, созданный в elasticsearch 5.0
, где он содержит данные из моего MySQL
db. В моей таблице есть поле string
, которое мне нужно как double
в ES.Если числа после десятичного числа равны нулю, оно не возвращается как двойное значение?
Так что я был добавлен отображение, когда я создал индекс для соответствующего поля с помощью PUT
:
{
"mappings": {
"my_type": {
"properties": {
"chargeamount": {
"type": "double"
}
}
}
}
}
После того как я сделал это, значение, которое содержит число после запятой (т.е. 23.23) возвращает значение правильно как double, но где числа, которые имеют нули после десятичной (т. е.: 23,00), возвращают его как сама строка (то есть: 2300).
РЕДАКТИРОВАТЬ: Эти шаги, которые я сделал:
Первоначально я создал индекс через
PUT
запроса (http://hostmachine:9402/indexname
) с указанным выше отображения в качестве тела.Затем я выталкиваю данные (из моей таблицы MySQL) в индекс, используя
logstash
. Я мог бы предоставить logstash conf, если это необходимо.Как только данные загружаются в индекс, я попробовал запросить как таковой, чтобы проверить, показывает ли результат двойное значение.
POST
запрос (http://hostmachine:9402/indexname/_search?
и тело следующим образом:{ "size" : 0, "query":{ "query_string":{ "query":"myquery" } }, "aggs":{ "total":{ "terms":{ "field":"userid" }, "aggs":{ "total":{ "sum":{ "script":{ "lang": "painless", "inline" : "doc['chargeamount'].value" } } } } } } }
И результат выглядит, как в приведенном ниже снимке, где он должен был 267472,00:
Где я буду ошибаться? Любая помощь может быть оценена.
Можете ли вы показать пример документа вы индексируется, и команды, которые вы используете? – Val
@Val пример документа в смысле? Я создал индекс, используя этот запрос ('http: // hostmachine: 9402/indexname') с указанным выше отображением как' body'. После того как я создал индекс как таковой, я пытаюсь загрузить данные в индекс, используя 'logstash'. – Kulasangar
Проще говоря, можете ли вы показать все команды, которые вы запускали, чтобы можно было воссоздать ту же проблему, что и вы? – Val