在ElasticSearch中查找日期差异 [英] Find the date difference in ElasticSearch
问题描述
{field1,field2,startdate,enddate}
我需要运行一些查询,其中一些条件将需要 startdate
和 enddate
在标准SQL中,一个例子可以是:
SELECT *,( 2010-01-01-startdate)as diffstartdate,(2010-01-01-enddate)as diffenddate FROM Table1
如何实现这在弹性搜索?
脚本字段
是你需要的。 / p>
{
查询:{
match_all:{}
},
script_fields:{
difference_between_two_dates:{
script:groovy.time.TimeCategory.minus(new java.util.Date(2010-01-01),new java .util.Date(doc ['dateCreated']。value))
}
}
}
确保dy在 elasticsearch.yml
中启用了namic脚本。
script.disable_dynamic: false
您可以参考 https://www.elastic.co/guide/en/elasticsearch/reference/1.4/search-request-script -fields.html 了解更多信息。
希望有帮助。
Let's say I have documents with the following fields:
{field1, field2, startdate, enddate}
I need to run some queries where some of the conditions will require the difference between the startdate
and the enddate
In standard SQL, an example could be:
SELECT *,(2010-01-01-startdate) as diffstartdate, (2010-01-01-enddate) as diffenddate FROM Table1
How can I achieve this in elasticsearch?
Script Fields
is what you need.
{
"query" : {
"match_all": {}
},
"script_fields" : {
"difference_between_two_dates" : {
"script" : "groovy.time.TimeCategory.minus(new java.util.Date(2010-01-01),new java.util.Date(doc['dateCreated'].value))"
}
}
}
Make sure that dynamic script is enabled in elasticsearch.yml
.
script.disable_dynamic: false
You can refer to https://www.elastic.co/guide/en/elasticsearch/reference/1.4/search-request-script-fields.html for more information. Hope it helps.
这篇关于在ElasticSearch中查找日期差异的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!