我的ES数据库中有几个项目,例如包含2020-02-26T05:24:55.757Z的字段。是否可以(使用URI搜索,_search?q = ...)搜索确切的日期?例如,在这种情况下,我想查找2020-02-26的项目。这可能吗?
答案 0 :(得分:1)
是的,有可能。您可以参考查询字符串documentation以获取更多信息。
curl localhost:9200/your_index_name/_search?q=your_date_field:%7B2020-02-26%20TO%20*%7D
您需要编码网址。查询部分看起来像q=your_date_field:{2020-02-26 TO *}
REST api中的上述查询看起来像
{
"query": {
"range": {
"your_date_field": {
"gte": "2020-02-26"
}
}
}
}
以下exact
日期可行
curl localhost:9200/your_index_name/_search?q=your_date_field:2020-02-26
答案 1 :(得分:0)
虽然这个问题很老,但我遇到过,所以也许其他人也会这样做。
如果您只想在 UTC 中工作,您可以使用 match
查询,例如:
{
"query": {
"match": {
"your_date_field": {
"query": "2020-02-26"
}
}
}
}
如果您需要考虑在不同时区的特定日期匹配的事物,则必须使用 range
查询,例如:
{
"query": {
"range": {
"your_date_field": {
"gte": "2020-02-26",
"lte": "2020-02-26",
"time_zone": "-08:00"
}
}
}
}