我正在使用ElasticSearch版本5.1。
我正在尝试检索所有文件,其中减去两个字段< | X |
这是我运行的查询:
post /my_idx/_search
{
"query": {
"bool": {
"must": {
"script": {
"script": {
"inline": "doc[\"f1\"].value - doc[\"f2\"].value < 9 && doc[\"f1\"].value - doc[\"f2\"].value > -9",
"lang": "painless"
}
}
}
}
}
}
我尝试使用常用的数学函数'abs'但没有成功。
如何在查询中使用此功能?
谢谢
答案 0 :(得分:7)
您只需在Math.abs(...)
脚本中使用painless
方法。
答案 1 :(得分:2)
您可以尝试使用具有groovy
功能的abs
lang编写脚本。
{
"query": {
"bool": {
"must": {
"script": {
"script": {
"inline": "doc['f1'].value - doc['f2'].value < Math.abs(9)",
"lang": "groovy"
}
}
}
}
}
}