我正在使用Elasticsearch在數據庫中搜索記錄。這些記錄有一個start_date
和end_date
的字段,用戶可以指定他們想檢查的日期範圍。記錄的開始和結束日期都必須在指定的日期範圍內。但是,某些記錄只有start_date,因此end_date字段爲空。只要start_date在範圍內,我也希望返回這些記錄。我如何在我的Elasticsearch結果中允許空值?
{
"from": 0,
"size": 20,
"query": {
"bool": {
"must": [
{
"match": {
"last_name": {
"query": "Beach",
"boost": 1.0,
"analyzer": "standard",
"fuzziness": 2.0
}
}
}
],
"should": [
{
"range": {
"start_date.year": {
"gte": "1800",
"lte": 1900
}
}
},
{
"range": {
"end_date.year": {
"gte": "1800",
"lte": 1900
}
}
}
],
"minimum_should_match": 1
}
}
}
的問題是,因爲只有日期字段的一個需要匹配,當我有一個都和start_date
的end_date
的記錄,其中一人可能是超出範圍。我如何要求start_date
和end_date
都在範圍內,但允許start_date
或end_date
值爲空?