gpt4 book ai didi

elasticsearch - Elasticsearch-使用过滤器上下文按日期范围过滤,其中日期可以为空

转载 作者:行者123 更新时间:2023-12-03 00:08:32 25 4
gpt4 key购买 nike

我正在尝试过滤过去有“直到”日期的所有结果。但是,如果“有效期至”日期为空,我仍然想返回结果。

这是我需要的输出:
Available Until Date < today <<此不应返回
Available Until Date >= today <<应该返回此
Available Until Date is null <<应该返回


我查看了以下其他堆栈溢出问题herehere,但是,我相信它们都在查询上下文中,而我需要使用过滤器上下文。

以下是到目前为止的代码。我将如何使用过滤器上下文修改此设置以允许结果在“直到”中具有空值?

var baseQuery = {
"size": 1000,
"query": {
"bool": {
"filter": [{
"range": {
"Product.AvailableUntil": {
"gte": "now"
}
}
}],
"must_not": [],
"should": [],
"must": []
}
}
};

感谢您的任何帮助! :)

最佳答案

唯一的方法是使用bool/should查询来捕获约束

  • 或者没有AvailableUntil日期
  • AvailableUntil晚于今天

  • 查询如下所示:
    var baseQuery = {
    "size": 1000,
    "query": {
    "bool": {
    "minimum_should_match": 1,
    "should": [
    {
    "bool": {
    "must_not": {
    "exists": {
    "field": "Product.AvailableUntil"
    }
    }
    }
    },
    {
    "range": {
    "Product.AvailableUntil": {
    "gte": "now"
    }
    }
    }
    ]
    }
    }
    };

    关于elasticsearch - Elasticsearch-使用过滤器上下文按日期范围过滤,其中日期可以为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42982297/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com