例如MySQL查询
SELECT fields_a, fields_b FROM table WHERE fields_a > fields_b;
我正在尝试为Elasticsearch实现。我已经尝试过,如下所示:
$where = [ "query" => [ "filter" => [ "script" => [ "script" => "doc[\"fields_a\"].value > doc[\"fields_b\"].value" ] ] ] ];
我想念什么?
最佳答案
这应该对我有用
{
"query": {
"bool": {
"must": [{
"script": {
"script": "doc['field_a'].value > doc['field_b'].value"
}
}]
}
}
}
要仅选择几个字段而不是整个源文档,请使用stored_fields
"stored_fields": ["field_a","field_b"]
并确保在映射中将这些字段作为store=true
。{
stored_fields": ["field_a","field_b"]
"query": {
"bool": {
"must": [{
"script": {
"script": "doc['field_a'].value > doc['field_b']"
}
}]
}
}
}
关于elasticsearch - Elasticsearch比较两个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43064956/