我正在存储具有两个字段的文档:startDate 和 endDate。我想使用输入日期运行弹性查询并返回 startDate 和 endDate 包含该日期的所有文档。例如,
doc1:
"_source": {
"startDate": "2015-01-01",
"endDate": "2015-01-10"
}
如果我使用输入日期 2015-01-02 进行搜索,则该文档应该出现在结果中,因为输入日期位于开始日期和结束日期字段的范围内。
我可以使用一个字段进行范围查询,但我不知道如何使用两个日期字段,因为范围只接受一个:
{
"query": {
"range" : {
"startDate" : {
"lte": "2015-01-02"
}
}
}
}
我还需要在同一日期将“endDate”设置为“gte”来执行范围查询。这将确定我需要检查的时间范围。任何意见,将不胜感激。
编辑:我最终想使用 olivere 的弹性库将其转换为 Go 中的 Elasticsearch 查询。
你可以这样做filter
clause:
{
"query": {
"bool": {
"filter": [
{
"range": {
"startDate": {
"lte": "<startDate>"
}
}
},
{
"range": {
"endDate": {
"gte": "<endDate>"
}
}
}
]
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)