0%

索引重建方案

我们通过创建新索引的方式来解决现有索引字段类型问题:

  1. 创建新索引并设置正确的mapping映射
  2. 使用POST /_reindex迁移数据
  3. 验证数据和mapping映射
  4. 删除原错误索引
  5. 创建别名指向老索引名称

Elasticsearch 时间段查询实战

在实际业务场景中,我们经常需要查询每天特定时间段的数据,比如查询每天早高峰(7-9点)的订单数据,或者夜间(23-6点)的系统日志。本文将详细介绍如何在 Elasticsearch 中实现这类查询。

业务场景

假设我们需要检索每天特定时间段(东八区时间 5:00-6:00)的数据,这在以下场景中很常见:

  • 系统监控:查询每天凌晨时段的系统状态
  • 业务分析:统计每天特定时间段的用户活跃度
  • 日志分析:筛选特定时间窗口的错误日志

核心挑战

  • 时区转换:将 UTC 时间转换为东八区时间(UTC+8)
  • 跨天处理:处理时间范围可能跨越午夜的情况
  • 性能优化:使用高效的查询方式避免全表扫描

解决方案

方案一:Script Query(推荐)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
GET /your_index/_search
{
  "query": {
    "script": {
      "script": {
        "source": """
        // 获取 UTC 时间的小时
        def utcHour = doc['timestamp'].value.getHour();
// 转换为东八区时间
def beijingHour = (utcHour + 8) % 24;
// 检查是否在指定时间段内
return beijingHour >= params.startHour && beijingHour < params.endHour;
""",
"params": {
"startHour": 5,
"endHour": 6
}
}
}
}
}

代码解析

Script Query 详解

1
2
3
4
5
6
7
8
// 1. 获取文档中时间字段的小时部分
def utcHour = doc['timestamp'].value.getHour();

// 2. 时区转换:UTC + 8小时 = 东八区时间
def beijingHour = (utcHour + 8) % 24;

// 3. 时间范围判断
return beijingHour >= params.startHour && beijingHour < params.endHour;

关键点说明

  1. 模运算% 24 确保小时值在 0-23 范围内
  2. 参数化:使用 params 提高查询的复用性
  3. 边界处理:使用 >=< 确保时间边界的准确性

性能优化建议

1. 使用索引优化

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
PUT /your_index
{
  "mappings": {
    "properties": {
      "timestamp": {
        "type": "date",
        "format": "yyyy-MM-dd HH:mm:ss||epoch_millis"
      },
      "beijing_hour": {
        "type": "integer"
      }
    }
  }
}

已经完成了最关键的一步——拿到了人身损害十级伤残鉴定工伤九级鉴定。专注于案件本身的后续法律流程与核心沟通要点


✅ 一、总体路径明确:走“提供劳务者受害责任纠纷”诉讼

由于您父亲:

  • 年龄超过60岁
  • 签订的是劳务合同(非劳动合同)
  • 不符合工伤认定条件

👉 因此,必须放弃“工伤赔偿”路线,转而以《民法典》第1192条为依据,提起:

“提供劳务者受害责任纠纷”民事诉讼

这是一条完全合法、可行且能获得合理赔偿的路径。


🚶‍♂️ 二、当前案件所处阶段及后续完整流程

阶段当前状态下一步动作
1. 证据准备已完成司法鉴定(十级)
有医疗记录、工资流水等
整理全套证据材料
2. 起诉立案尚未立案?或已立案?准备起诉状 + 证据清单 → 提交法院
3. 法院受理立案后分配案号、法官等待开庭通知
4. 开庭审理双方举证质证、辩论律师出庭陈述,家属可旁听
5. 判决/调解法院作出判决或组织调解接受调解 or 上诉

📌 您目前最需要做的,是确保律师尽快向法院提交起诉状并立案。


📂 三、您需要和律师重点沟通的7个关键问题

以下是您应与律师面对面沟通的核心内容,请逐条确认:


🔹 1. 是否已决定按“人身损害”而非“工伤”起诉?

✅ 必须明确告诉律师:

“我们不再主张工伤保险待遇,改为依据《民法典》第1192条,请求‘提供劳务者受害责任’赔偿。”

⚠️ 提醒律师:

  • 不要用“工伤九级”作为主要索赔依据(法院不会采信)
  • 但可以作为伤情严重性的佐证材料提交,辅助说明伤害程度

🔹 2. 起诉状是否准备好?何时立案?

📝 要求律师出示:

  • 起诉状草稿
  • 证据目录清单
  • 原告身份信息、被告单位工商信息

📅 明确问:

“预计什么时候去新乡市XX区人民法院立案?”

📍 建议管辖法院: