我在user.created_at字段中的数据如下
Tue Mar 10 23:03:00 +0000 2020
Tue Mar 10 04:29:18 +0000 2020
Tue Jan 21 08:45:43 +0000 2020
Tue Mar 10 00:11:45 +0000 2020
Tue Jan 28 04:11:45 +0000 2020
Sun Mar 08 10:19:19 +0000 2020我试着询问ES,比如:
{
"query": {
"bool": {
"must": [
{
"match": {
"sentiment": "neutral"
}
}
,
{
"wildcard": {
"user.created_at": "*2020"
}
}
,
{
"match": {
"user.created_at": "Tue Mar 10"
}
}
],
"must_not": [ ],
"should": [ ]
}
}}但也有另一个数据显示,这是我不想要的。结果继续显示其他日期。就像下面
我的问题是,如何只返回日期为Tue Mar10 23:03:00 +0000 2020的数据?有没有办法只得到一个命中的数据与该特定的日期。我对此一无所知。请帮帮我。
发布于 2020-03-31 09:37:58
您的created_at映射类型是什么?当它是date时,可以使用带有正确日期格式化的range查询。
...
"query": {
"range": {
"user.created_at": {
"gte": "2020-03-10",
"lt": "2020-03-11"
}
}
}
...发布于 2020-03-31 10:03:40
我已经解决了自己的问题。我使用一个长查询来获取字段中具有长日期值的特定命中值。
{
"query": {
"bool": {
"must": [
{
"match": {
"sentiment": "neutral"
}
}
,
{
"wildcard": {
"user.created_at": "*2020"
}
}
,
{
"match": {
"user.created_at": "Tue"
}
}
,
{
"match": {
"user.created_at": "Mar"
}
}
,
{
"match": {
"user.created_at": "10"
}
}
,
{
"match": {
"user.created_at": "Tue Mar"
}
}
,
{
"match": {
"user.created_at": "Mar 10"
}
}
],
"must_not": [ ],
"should": [ ]
}
},
"from": 0,
"size": 250,
"sort": [ ],
"aggs": { }
}https://stackoverflow.com/questions/60944978
复制相似问题