Elasticsearch 日期范围交集

2024-05-25

我在弹性搜索中存储类似以下信息的信息:

{ "timeslot_start_at" : "2013-02-01", "timeslot_end_at" : "2013-02-03" }

鉴于我有另一个日期范围(例如,从用户输入给出),我想搜索相交的时间范围。与此类似:确定两个日期范围是否重叠 https://stackoverflow.com/questions/325933/determine-whether-two-date-ranges-overlap其中概述了以下逻辑是我所追求的:

(StartDate1 <= EndDate2) and (StartDate2 <= EndDate1)

但我不确定如何将其适合弹性搜索查询,我是否会使用范围过滤器并仅设置“to”值,将 from 留空?或者有更有效的方法来做到这一点吗?


更新:现在可以使用日期范围 https://www.elastic.co/guide/en/elasticsearch/reference/5.2/range.html在elasticsearch v5.2中添加的数据类型。对于早期版本的elasticsearch,以下解决方案仍然适用。

要测试交集,您应该使用 bool 查询将两个范围查询合并为一个查询:

{
    "bool": {
        "must": [
            {
                "range": {
                    "timeslot_start_at": {
                        "lte": "2013-02-28"
                    }
                }
            },
            {
                "range": {
                    "timeslot_end_at": {
                        "gte": "2013-02-03"
                    }
                }
            }
        ]
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Elasticsearch 日期范围交集 的相关文章

随机推荐

  • YouTube iframe 嵌入 - 全屏

    我有一个嵌入网页的表单 填写完表格后 将使用 iframe 嵌入显示 YouTube 视频 当我进入 YouTube 视频的全屏模式时 什么也没有发生 嵌套 iframe 的全屏是否受到父 iframe 尺寸的限制 在当前的 YouTube
  • 让浏览器缓存我的动态 PHP 样式表

    我想在 PHP 文件 styles php 中创建一个样式表 以便样式表变得动态 具体取决于请求的用户 对于每个单独的用户来说 样式表是不变的 因此应该缓存在他的客户端浏览器上 我读过 您可以通过设置内容类型和缓存控制等标头来实现此目的 但
  • C++11:atomic::compare_exchange_weak 是否支持非原始类型?

    我有以下代码 include
  • 平静的 POST 响应的“最佳”实践

    所以这里没有什么新内容 我只是想得到一些澄清 似乎在其他帖子中找不到任何澄清 我正在平静地创建一个新资源 说 books POST 与身体 title The Lion the Witch and the Wardrobe author C
  • AngularJs 路由提供者 404

    下面的代码来自 AngularJs 教程 我稍作修改 我希望从 url 中删除哈希值 我实际上成功了 但现在我有其他问题 当我使用链接本地主机时 它工作得很好并将我重定向到本地主机 电话 但万一我尝试直接链接 localhost phone
  • 执行 SELECT 或 INSERT

    我想写一些类似的东西CASE以我想要的方式在 PostgreSQL 中声明SELECT从表中 如果什么也没找到 我想INSERT改为放入表中 我的示例表allocated ideas看起来像这样 challenge id user id i
  • ASP.NET - 将所有 https 请求重写为 http

    我的问题正是所提出的问题here https stackoverflow com questions 16276860 iis 7 adding ssl to one site all other sites responds to htt
  • 在 Vue SFC 组件中导入 SCSS 文件,无需使用 Webpack 进行重复

    当我尝试访问所有 Vue SFC 中的 scss 文件时 样式会重复 导致大型 css 包和开发工具在样式调试时崩溃 我正在使用 Webpack 4 和 webpack dev server 来构建和运行具有热重载的开发服务 我没有使用 V
  • Windows 上的 Node-Webkit 在 3 个不同的进程中运行?

    如果这是重复的 我很抱歉 我尝试过了Google https www google com search q node webkit three different processes on windows答案 但不是很有帮助 如果我使用运
  • JSX 中的“导出默认值”有什么作用?

    我想问最后一句的含义和作用 导出默认 HelloWorld 但我找不到任何有关它的教程 hello world jsx import React from react class HelloWorld extends React Compo
  • VS Code 自动格式化 Python 代码以使用 2 个选项卡

    由于某种原因 Visual Studio Code 看起来正在将我的代码格式化为使用 2 个选项卡 我已经改变了我的settings json使用 2 个空格作为制表符 我已通过按制表符按钮验证了这一点 并且它按预期使用了 2 个空格 然而
  • android 弹出菜单文本颜色(AppCompat)

    我需要更改 popuo 菜单的文本颜色 但我找不到任何方法来执行此操作 我可以更改 popomenu 的背景但不能更改文本 我以这种方式编辑 style xml
  • 批处理文件-选择选项-设置默认选项

    在下面的示例批处理文件中 我有几个选项供用户选择 另外 我想设置一个默认选项 例如 我希望用户能够点击 ENTER 然后从我的列表中选择默认选项 我选择的 假设选项 1 谢谢您的帮助 ECHO OFF selector set input
  • 按列名称索引拆分数据框

    这是先前问题的变体 df lt data frame matrix rnorm 9 9 ncol 9 names df lt c c 1 d 1 e 1 a p b p c p 1 o1 2 o1 3 o1 我想按下划线 后面的column
  • 逐字遍历句子

    如何逐字遍历任何给定的句子 java中有内置函数吗 我不知道如何开始 像这样的事情 String sentence Your sentence here String words sentence split s splits by whi
  • matplotlib savefig 性能,在循环内保存多个 png

    我希望找到一种方法来优化以下情况 我有一个使用 matplotlib 的 imshow 创建的大型等高线图 然后 我想使用此等高线图来创建大量 png 图像 其中通过更改 x 和 y 限制以及长宽比 每个图像都是等高线图像的一小部分 因此
  • 从操作写入输出流

    由于一些奇怪的原因 我想将 HTML 从控制器操作直接写入响应流 我理解MVC分离 但这是一个特例 可以直接写入吗HttpResponse溪流 在这种情况下 哪个IView控制器操作应该返回对象吗 我可以返回 空 吗 我使用了一个派生类Fi
  • 如何从javascript数组中获取唯一用户名的最后记录

    我有一个对象数组 例如 id 8 username peter weight 80 date 2019 10 14 id 1 username harry weight 80 date 2019 01 01 id 2 username ha
  • 用玩笑测试 Observables

    如何使用 Jest 测试 Observables 我有一个每秒触发一次的 Observable 我想在玩笑超时之前测试第一个事件是否正确触发 const myObservable timer 0 1000 Example here it s
  • Elasticsearch 日期范围交集

    我在弹性搜索中存储类似以下信息的信息 timeslot start at 2013 02 01 timeslot end at 2013 02 03 鉴于我有另一个日期范围 例如 从用户输入给出 我想搜索相交的时间范围 与此类似 确定两个日