• 首页
  • 邻居
  • 关于
  • 归档
  • 搜索
  • 夜间模式
    ©2020-2026  我的学习笔记 Theme by OneBlog

    我的学习笔记博客

    搜索
    标签
    # 随笔 # Java # 教程 # openwrt # Mysql # SQL # 爬虫 # post # Js调优 # MAVEN
  • 首页>
  • 随笔>
  • 正文
  • es 字符串时间格式的字符串怎么做小时查询

    2024年04月11日 1.4 k 阅读 0 评论 1135 字
    import org.elasticsearch.index.query.QueryBuilders;
    import org.elasticsearch.script.Script;
    import org.elasticsearch.script.ScriptType;
    import java.time.LocalDateTime;
    import java.time.format.DateTimeFormatter;
    import java.util.Collections;
    
    // 创建一个脚本,用于解析时间字符串并检查小时是否等于指定的小时
    Script script = new Script(
        ScriptType.INLINE,
        "painless",
        "def formatter = DateTimeFormatter.ofPattern('yyyy-MM-dd HH:mm:ss');\n" +
        "def dateTime = LocalDateTime.parse(doc['eventTime'].value, formatter);\n" +
        "if (dateTime == null) {\n" +
        "    logger.error('Failed to parse eventTime value: ' + doc['eventTime'].value);\n" +
        "}\n" +
        "return dateTime.getHour() == Integer.valueOf(params.hour);",
        Collections.singletonMap("hour", "00") // 设置参数值为字符串类型的 "00"
    );
    
    // 创建一个脚本查询,匹配指定小时的数据
    QueryBuilder scriptQuery = QueryBuilders.scriptQuery(script);
    
    // 将脚本查询与其他条件组合
    QueryBuilder finalQuery = QueryBuilders.boolQuery()
        .must(QueryBuilders.termQuery("in_out_type", "1")) // 添加其他条件,例如匹配in_out_type为1的数据
        .must(scriptQuery);
    
    // 现在你可以使用finalQuery来执行你的Elasticsearch查询
    
    本文著作权归作者 [ admin ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。
    取消回复

    发表留言
    回复

    首页邻居关于归档
    Copyright©2020-2026  All Rights Reserved.  Load:0.016 s
    京ICP备18019712号
    Theme by OneBlog V3.6.5
    夜间模式

    开源不易,请尊重作者版权,保留基本的版权信息。