es 字符串时间格式的字符串怎么做小时查询

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查询
版权声明 ▶ 本网站名称:我的学习笔记
▶ 本文链接:https://ooolo.net/article/468.html
▶ 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行核实删除。
▶ 转载本站文章需要遵守:商业转载请联系站长,非商业转载请注明出处!!!

none
最后修改于:2024年04月11日 11:03

添加新评论

icon_mrgreen.pngicon_neutral.pngicon_twisted.pngicon_arrow.pngicon_eek.pngicon_smile.pngicon_confused.pngicon_cool.pngicon_evil.pngicon_biggrin.pngicon_idea.pngicon_redface.pngicon_razz.pngicon_rolleyes.pngicon_wink.pngicon_cry.pngicon_surprised.pngicon_lol.pngicon_mad.pngicon_sad.pngicon_exclaim.pngicon_question.png