当前位置: 首页 > news >正文

让 Elasticsearch Delete By Query 请求立即生效

让 Elasticsearch Delete By Query 请求立即生效

在 Elasticsearch 中,Delete By Query 操作默认是近实时的(near real-time),这意味着删除操作可能不会立即对搜索可见。要让删除操作立即生效,你可以使用以下几种方法:

1. 使用 refresh 参数

在请求中设置 refresh 参数为 truewait_for

req := esapi.DeleteByQueryRequest{Index:      []string{doc.IndexName()},Body:       strings.NewReader(string(body)),Refresh:    esapi.BoolPtr(true), // 立即刷新// 或者使用 wait_for 让操作在刷新后返回// Refresh:    esapi.StringPtr("wait_for"),
}

2. 手动刷新索引

执行删除操作后,立即刷新相关索引:

// 执行删除操作
res, err := req.Do(context.Background(), client)
if err != nil {// 处理错误
}
defer res.Body.Close()// 手动刷新索引
refreshReq := esapi.IndicesRefreshRequest{Index: []string{doc.IndexName()},
}
refreshRes, err := refreshReq.Do(context.Background(), client)
if err != nil {// 处理错误
}
defer refreshRes.Body.Close()

3. 配置索引的刷新间隔

如果你经常需要实时操作,可以考虑将索引的刷新间隔设置为1秒(默认值):

PUT /your_index/_settings
{"index.refresh_interval": "1s"
}

或者完全禁用自动刷新,改为手动控制:

PUT /your_index/_settings
{"index.refresh_interval": "-1"
}

4. 使用 ?refresh URL 参数

如果你使用的是 REST API 而不是 Go 客户端,可以在 URL 中添加 ?refresh 参数:

POST /your_index/_delete_by_query?refresh
{"query": { ... }
}

最佳实践建议

  1. 对于生产环境,频繁的刷新操作会影响性能,建议:

    • 批量操作时使用 refresh=wait_for
    • 对实时性要求高的单次操作使用 refresh=true
    • 大多数情况下依赖默认的刷新机制
  2. 如果你正在执行大量删除操作,考虑在操作完成后执行一次手动刷新,而不是每次删除都刷新。

  3. 注意 refresh=true 会立即创建新的段文件,可能导致更多的段合并操作,从而影响集群性能。

在这里插入图片描述

http://www.dtcms.com/a/577404.html

相关文章:

  • HarmonyOS开发-系统AI能力-语音转文字
  • 巨鹿企业做网站儋州网站建设培训学校
  • 建站优化收费下载网页图片
  • Docker搭建Ngnix、php5.6、php8、postgresql、redis
  • php基础-系统函数-第15天
  • CSP-J教程——第一阶段——第五课:程序流程控制 - 选择结构
  • 【Go微服务框架深度对比】Kratos、Go-Zero、Go-Micro、GoFrame、Sponge五大框架
  • 基于FPGA实现Mini-LVDS转LVDS
  • 做网站的是如何赚钱的哪个小说网站版权做的好处
  • Cache的基本原理
  • 如何提高外贸网站排名南京高端定制网站建设
  • 建网站需要多久网站模板怎么制作
  • 计算机网络:基于TCP协议的自定义协议实现网络计算器功能
  • SpringBoot3+ApolloClient2.3.0集成Apollo2.4.0示例
  • UDP的recvfrom会返回一个完整的数据报
  • Rust实战教程:做一个UDP聊天软件
  • 基于遥感解译与GIS技术生态环境影响评价图件制作
  • 用asp制作一个简单的网站零基础学电脑培训班
  • 广东如何进行网站制作排名做网站在哪里买空间域名
  • 数据结构(长期更新)第6讲:双向链表
  • Debian系统的多内核共存
  • HTTPS 请求抓包,从原理到落地排查的工程化指南(Charles / tcpdump / Wireshark / Sniffmaster)
  • Debian 12 笔记本合盖不休眠设置指南
  • 线性代数 - 奇异值分解(SVD Singular Value Decomposition)- 奇异值在哪里
  • 商城网站开发的完整流程图视频制作价格明细
  • 如何保证Redis和Mysql数据缓存一致性?
  • 八股-Mysql 基础篇(1)
  • 建设公司网站需要准备什么科目苏州建网站的公司
  • Git 某个分支恢复到某个特定的 commit 状态
  • 【Prompt学习技能树地图】生成知识提示技术的深度解析与应用