Суть проблемы такая. В типе есть постоянные поля, а также дополнтиельные динамические поля и они для каждой записи разные.
// Постоянные поля
product_id
title
description
// динамические, у каждой записи они могут быть разные
property_45
property_7
Например, необходимо сделать выборку вида (или агрегацию данных):
{
"range" : {
"property_7" : {
"gte" : 10,
"lte" : 20,
}
}
}
Т.к. тип поля "property_7" строка, то будет происходить выборка по алгоритму строк. Как данные сконвертировать на лету в float и уже потом по ним производить необходимые действия?
Нагуглил решение со скриптом, но так и не получилось завести:
{
"aggs" : {
"my_stats" : { "stats" : {
"script" : "try { Integer.parseInt(doc['property_7'].value); } catch(Exception e){ return 0;}"
}}
}
}
Вываливается exception: "script_exception: failed to compile groovy script"