码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • ES 查询时提示:all shards failed [type=search_phase_execution_exception]


    我的情况和解决方案

    这种错误大概率是 ES 的查询语句语法错误,比如我当时是,时间筛选的条件的格式写错了,导致 ES 查询时解析错误,从而报了all shards failed [type=search_phase_execution_exception]这个错误

    排查思路:先想办法把查询 DSL 语句打印出来,看下这个最终用来查询的 DSL 语句在语法上有没有问题,如果有问题就改正。

    网上对于这个错误还有一些其他的原因,这里简单复制过来,方便以后遇到相同问题时查询使用

    其他网友的情况和解决方案

    当使用到term 查询的时候,由于是精准匹配,所以查询的关键字在 es 上的类型,必须是 keyword 而不能是 text,比如你的搜索条件是 “name”:”jack”,那么该 name 字段的 es 类型得是keyword,而不能是 text。比如下面是一个 DSL语句的例子,

    解决方案一是修改 ES 的 mapping,把需要精准匹配的字段设置成 keyword 类型,

    方案二是修改 DSL,让查询的字段类型按照 keyword 的方式来查询,query 里增加 .keyword 后缀。但是这种方案我都没有亲自实验过,不知道是否能真的解决问题,下次遇到了相同问题再来检验一下。

    修改 DSL 中的语句,字段里增加.keyword 后缀。

    在我们的Java 或者 Golang 代码中怎么修改呢?如下,加上".keyword"就可以了

    Java 客户端

    Golang 客户端

    附录(如何打印输出 DSL语句)

    1. // 创建MatchAll查询,这里替换成你自己的 elasticClient 对象
    2. matchAllQuery := elasticClient.NewMatchAllQuery()
    3. // 获取查询的JSON表示(DSL语句),这里需要替换成你自己的 query 对象
    4. querySrc, err := matchAllQuery.Source()
    5. if err != nil {
    6. log.Fatalf("Error getting query source: %s", err)
    7. }
    8. // 序列化查询对象
    9. queryStr, err := json.MarshalIndent(querySrc, "", " ")
    10. if err != nil {
    11. log.Fatalf("Error marshalling query to JSON: %s", err)
    12. }
    13. // 打印DSL语句
    14. fmt.Println("DSL Query:\n", string(queryStr))

    参考:已解决:Elasticsearch报错:exception [type=search_phase_execution_exception, reason=all shards failed]、all shards failed [type=search_phase_execution_exception]

  • 相关阅读:
    【Android入门】4、数据持久化:文件、SharedPreferences 和 Sqlite
    【无标题】
    事业编招聘:国家无线电监测中心2022年公开招聘
    DockerCompose部署es和kibana
    状态模式:封装对象状态并改变行为的设计模式
    丢掉破解版,官方免费了!!!
    MyBatisPlus一对多分页查询处理主表子表查询条件
    VSLAM视觉里程计总结
    如何在矩池云使用 Poetry 管理项目环境
    一文梳理2048小游戏从开发到上云全流程
  • 原文地址:https://blog.csdn.net/qq_41767116/article/details/127709293
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号