--- title: "异步搜索持久化结果清理间隔" date: 2026-02-19 lastmod: 2026-02-19 description: "控制异步搜索过期持久化结果清理任务的运行间隔的配置项说明" tags: ["异步搜索", "存储管理", "数据清理"] summary: "配置项作用 # async_search.expired.persisted_response.cleanup_interval 配置项控制过期异步搜索持久化结果清理任务的运行间隔。该清理任务负责从集群中删除已过期的异步搜索结果数据,释放存储空间。 配置项类型 # 该配置项为静态配置,修改后需要重启节点才能生效。 默认值 # 30m(30分钟) 是否必需 # 可选配置项 取值范围 # 5s ~ 无限制 最小值:5秒 工作原理 # 异步搜索结果可以持久化存储到磁盘,以便在搜索完成后仍然可以获取结果。持久化结果清理机制包括: 由集群管理节点执行:只有当选中的节点成为集群管理节点时,才会执行清理任务 定期调度:按照配置的间隔定期调度清理任务 随机选择执行节点:从数据节点中随机选择一个节点来执行实际的删除操作 清理过期数据:删除所有超过 keep_alive 时间的异步搜索结果 执行流程 # 1. 集群管理节点按配置间隔调度清理任务 ↓ 2. 随机选择一个数据节点执行清理 ↓ 3. 该节点执行 delete-by-query 删除过期结果 ↓ 4. 完成后调度下一次清理任务 使用示例 # # 默认配置(每30分钟清理一次) async_search.expired.persisted_response.cleanup_interval: 30m # 更频繁的清理(每10分钟清理一次) async_search.expired.persisted_response.cleanup_interval: 10m # 较少清理(每1小时清理一次) async_search.expired.persisted_response.cleanup_interval: 1h # 最小间隔(每5秒清理一次) async_search.expired.persisted_response.cleanup_interval: 5s 推荐设置建议 # 推荐使用默认值 30m" --- ## 配置项作用 `async_search.expired.persisted_response.cleanup_interval` 配置项控制过期异步搜索持久化结果清理任务的运行间隔。该清理任务负责从集群中删除已过期的异步搜索结果数据,释放存储空间。 ## 配置项类型 该配置项为**静态配置**,修改后需要重启节点才能生效。 ## 默认值 ``` 30m(30分钟) ``` ## 是否必需 **可选配置项** ## 取值范围 ``` 5s ~ 无限制 最小值:5秒 ``` ## 工作原理 异步搜索结果可以持久化存储到磁盘,以便在搜索完成后仍然可以获取结果。持久化结果清理机制包括: 1. **由集群管理节点执行**:只有当选中的节点成为集群管理节点时,才会执行清理任务 2. **定期调度**:按照配置的间隔定期调度清理任务 3. **随机选择执行节点**:从数据节点中随机选择一个节点来执行实际的删除操作 4. **清理过期数据**:删除所有超过 keep_alive 时间的异步搜索结果 ## 执行流程 ``` 1. 集群管理节点按配置间隔调度清理任务 ↓ 2. 随机选择一个数据节点执行清理 ↓ 3. 该节点执行 delete-by-query 删除过期结果 ↓ 4. 完成后调度下一次清理任务 ``` ## 使用示例 ```yaml # 默认配置(每30分钟清理一次) async_search.expired.persisted_response.cleanup_interval: 30m # 更频繁的清理(每10分钟清理一次) async_search.expired.persisted_response.cleanup_interval: 10m # 较少清理(每1小时清理一次) async_search.expired.persisted_response.cleanup_interval: 1h # 最小间隔(每5秒清理一次) async_search.expired.persisted_response.cleanup_interval: 5s ``` ## 推荐设置建议 **推荐使用默认值 `30m`** **特殊情况调整:** ```yaml # 大量异步搜索、存储空间紧张 # 需要更频繁的清理以释放存储空间 async_search.expired.persisted_response.cleanup_interval: 15m # 异步搜索量少、存储空间充足 # 可以使用较长间隔减少后台任务开销 async_search.expired.persisted_response.cleanup_interval: 1h ``` ## 配置影响 | 设置值 | 存储释放速度 | 系统开销 | 适用场景 | |-------|------------|---------|---------| | 较小(如 10m) | 快 | 较高 | 大量异步搜索,磁盘紧张 | | 默认(30m) | 适中 | 适中 | 通用场景 | | 较大(如 1h+) | 慢 | 较低 | 少量异步搜索,磁盘充足 | ## 与活跃上下文清理的区别 | 配置项 | 清理目标 | 执行位置 | 默认间隔 | |-------|---------|---------|---------| | `async_search.active.context.reaper_interval` | 内存中的活跃搜索上下文 | 每个节点独立执行 | 5分钟 | | `async_search.expired.persisted_response.cleanup_interval` | 磁盘上的持久化结果 | 集群管理节点调度 | 30分钟 | ## 相关配置项 - `async_search.max_keep_alive`:异步搜索结果的最大保留时间 - `async_search.persist_search_failures`:是否持久化失败的搜索结果 - `async_search.active.context.reaper_interval`:活跃上下文清理间隔 ## 注意事项 1. **静态配置**:修改此配置需要重启节点才能生效 2. **最小值限制**:设置值不能小于 5 秒 3. **集群管理节点**:此清理任务只在集群管理节点上调度 4. **存储考虑**:如果异步搜索结果很大,应该使用较短的清理间隔以避免存储空间不足 5. **网络开销**:清理操作会向数据节点发送请求,间隔过小可能增加网络负担