有什么方法可以在Elasticsearch数学运算中执行,例如下面所述的SQL?如果是,执行这种搜索操作的最佳方法是什么?
locality, administrative_area_level_2, and administrative_area_level_1
答案 0 :(得分:1)
使用无痛脚本查询(https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-script-query.html),这是可行的。
只需尝试一下:
GET /products/_search
{
"query": {
"bool" : {
"must" : {
"script" : {
"script" : {
"source": "(doc['price'].value + 50) > 20",
"lang": "painless"
}
}
}
}
}
}
像行为这样的准备好的语句可以这样完成:
GET /products/_search
{
"query": {
"bool" : {
"must" : {
"script" : {
"script" : {
"source": "(doc['price'].value + params.foo) > params.bar",
"lang": "painless",
"params" : {
"foo" : 50,
"bar" : 20
}
}
}
}
}
}
}