从 sql 到弹性搜索查询的转换
Conversion from sql to elastic search query
如何将以下 sql 查询转换为弹性搜索查询?
SELECT sum(`price_per_unit`*`quantity`) as orders
FROM `order_demormalize`
WHERE date(`order_date`)='2014-04-15'
您需要使用脚本来计算值的乘积。对于较新版本的 Elasticsearch,通过在 elasticsearch.yml
文件中添加行 script.disable_dynamic: false
来启用动态脚本。请注意,这可能会在您的 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"
}
}
}
}
如何将以下 sql 查询转换为弹性搜索查询?
SELECT sum(`price_per_unit`*`quantity`) as orders
FROM `order_demormalize`
WHERE date(`order_date`)='2014-04-15'
您需要使用脚本来计算值的乘积。对于较新版本的 Elasticsearch,通过在 elasticsearch.yml
文件中添加行 script.disable_dynamic: false
来启用动态脚本。请注意,这可能会在您的 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"
}
}
}
}