Как преобразовать следующий запрос sql в эластичный поисковый запрос?Преобразование из sql в эластичный поисковый запрос
SELECT sum(`price_per_unit`*`quantity`) as orders
FROM `order_demormalize`
WHERE date(`order_date`)='2014-04-15'
Как преобразовать следующий запрос sql в эластичный поисковый запрос?Преобразование из sql в эластичный поисковый запрос
SELECT sum(`price_per_unit`*`quantity`) as orders
FROM `order_demormalize`
WHERE date(`order_date`)='2014-04-15'
Чтобы вычислить произведение значений, вам нужно использовать скрипты. Для более новых версий Elasticsearch включите динамический скриптинг, добавив строку script.disable_dynamic: false
в файл elasticsearch.yml
. Обратите внимание, что это может оставить защитное отверстие в вашем кластере Elasticsearch. Поэтому включите скрипты разумно. Попробуйте ниже запрос:
POST <indexname>/<typename>/_search?search_type=count
{
"query": {
"filtered": {
"filter": {
"term": {
"order_date": "2014-04-15"
}
}
}
},
"aggs": {
"orders": {
"sum": {
"script": "doc['price_per_unit'].value * doc['quantity'].value"
}
}
}
}
Я не в состоянии получить доступ ** сценарий ** т.е. DOC [ «price_per_unit»] значение.. – deepak
Есть ли другой способ сделать это? – deepak
Какую версию Elasticsearch вы используете? – bittusarkar
Подчищены форматирования –