是否可以查询两个字段相减的结果?
例如。有两个字段:“开始”、“结束”。我想要带有以下内容的文件end - start > 10
.
这可以直接完成还是唯一的方法是在加载具有此差异的文档时创建一个新字段?
您可以使用脚本过滤器 http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-script-filter.html使用中解释的脚本语法脚本文档 http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-scripting.html#modules-scripting.
对于您的具体问题,您可能会这样做
{
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"script": {
"script": "doc['end'].value - doc['start'].value > 10"
}
}
}
}
}
你可以在哪里替换match_all
用你自己的查询。
从上面的代码中可以清楚地看出,您可以访问特定领域 http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-scripting.html#_document_fields在您的文档中使用以下语法doc['field']
并将特定功能应用于它们的值。在这种情况下,.value
(不带括号)返回字段本身的值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)