尝试使用范围查询进行'完全'日期匹配,但没有成功。
我有agreement_start_date
字段,下面有映射
"agreement_start_date" : {
"type" : "date",
"format" : "strict_date_optional_time||epoch_millis"
}
我索引了单个文档,似乎索引很好。
curl "localhost:9200/cr/_search?pretty=true" -d ''
{
"took" : 35,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 1,
"max_score" : 1.0,
"hits" : [ {
"_index" : "cr",
"_type" : "agreement_index",
"_id" : "570fe59b7f9e6f7f762129ed",
"_score" : 1.0,
"_source":{"agreement_start_date": "2016-04-14T18:46:51.268176+00:00"}
}
}
我希望使用与agreement_start_date
匹配的简单查询来获取此记录。
{
"query": {
"bool": {
"must": {
"range": {
"agreement_start_date": {
"gte": "2016-04-14",
"lte": "2016-04-14",
"format": "yyyy-MM-dd"
}
}
}
}
}
}
此查询返回0结果。如何在弹性搜索中进行查询,只比较提供的日期部分?
答案 0 :(得分:0)
似乎将舍入日期改为最近的一天。
{
"query": {
"bool": {
"must": {
"range": {
"agreement_start_date": {
"gte": "2016-04-14||\d",
"lte": "2016-04-14||\d",
"format": "yyyy-MM-dd"
}
}
}
}
}
}
此查询返回索引文档。
答案 1 :(得分:0)
我用过这个:
"range" : {
"agreement_start_date" : {
"gte": "2016-04-14",
"lte": "2016-04-14",
"format": "yyyy-MM-dd||yyyy-MM-dd",
"time_zone": "Asia/Seoul"
}
}