Я хочу использовать elasticsearch как поисковую систему. Я копирую записи из MySQL в elasticsearch и когда я запрашиваю elasticsearch я хочу, чтобы вычислить значение с данными в упругом и использовать его для сортировки результатовКак сортировать по расчетному значению в elasticsearch
Моего индекс выглядит следующим образом:
{
"busquedas" : {
"aliases" : { },
"mappings" : {
"coche" : {
"properties" : {
"coeff_e" : {
"type" : "double"
},
"coeff_r" : {
"type" : "double"
},
"desc" : {
"type" : "string"
}
}
}
},
"settings" : {
"index" : {
"creation_date" : "1460116924258",
"number_of_shards" : "5",
"number_of_replicas" : "1",
"uuid" : "N6jhy_ilQmSb6og16suZ4g",
"version" : {
"created" : "2030199"
}
}
},
"warmers" : { }
}
}
И я хочу, чтобы вычислить значение для каждой записи, как
myCustomOrder = (coeff_e + coeff_r) * timestamp
И использовать его для сортировки результатов
{
"sort" : [
{ "myCustomOrder" : {"order" : "asc"}},
"_score"
],
"query" : {
"term" : { ... }
}
}
Я знаю, что я могу использовать заводной для вычисления значений, но я только мог использовать его для фильтрации, как его показано в примерах
{
"from": 10,
"size": 3,
"filter": {
"script": {
"script": "doc['coeff_e'].value < 0.5"
}
}
}
Спасибо заранее, я полностью новичок в elasticsearch: D
проверить это >> http://stackoverflow.com/questions/36019873/elastic-search-aggregation-with-range-query – Arun