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

mapping source must be pairs of fieldnames and properties definition 解决方案

1.映射的 JSON 结构没有正确遵循 Elasticsearch 的要求,字段名和属性定义没有成对出现。

{
        "properties": {
            "field1": {
                "type": "text"
            },
            "field2": {
                "type": "keyword"
            }
        }
}

2.验证 JSON 语法: 使用 JSON 验证工具(如 JSONLint)来检查你的 JSON 是否有效。

3.文档类型错误(重重之重)

    我的问题就是在这里解决的.找了两个小时的报错居然是因为文档类型,对于es文档大家都知道,在 Elasticsearch 6.x 之前我们必须加文档类型_doc,但是对于6以上版本就可以不用加文档类型了,但是今天这个错就是因为这个,我的版本是7.17的,在排错的时候没有想到这个文档类型,因为版本高是可以省略文档类型的,但是到了最后还真是因为这个文档类型,问题就是映射json结构的问题,尽管 Elasticsearch 6.x 及以上版本允许省略类型,但如果你使用的是某个 API 方法,该方法可能仍然要求你提供类型参数。这取决于你使用的具体客户端库和它的 API 设计。
报错代码

             // 将 JSON 映射添加到请求中
            if (StringUtils.isNotBlank(esIndexDto.getIndexMappings())) {
                createIndexRequest.mapping(esIndexDto.getIndexMappings(), XContentType.JSON);
            }

解决成功代码

             // 将 JSON 映射添加到请求中
            if (StringUtils.isNotBlank(esIndexDto.getIndexMappings())) {
                //不加_doc会读取不到索引,不管是7以上的版本还是6都建议加上,避免创建索引时不必要的报错
                createIndexRequest.mapping("_doc",esIndexDto.getIndexMappings(), XContentType.JSON);
            }

对于操作es创建索引我建议大家不管是6.x以下版本还是7.x以上版本都需要加上文档映射还有文档类型,这样可以避免没必要的报错.


http://www.kler.cn/news/362449.html

相关文章:

  • raidrive 访问搭建的ftp服务报错超时的情况
  • ChatGPT实现旅游推荐微信小程序
  • 【纯前端excel导出】vue2纯前端导出excel,使用xlsx插件,修改样式、合并单元格
  • vue2 使用环境变量
  • 【性能优化】安卓性能优化之CPU优化
  • 证明竞赛图至少有一个长度不小于2k+1的有向圈
  • 桥接、NAT和仅主机三种网络模式对虚拟机IP地址分配的影响
  • 【Spring篇】Spring中的Bean管理
  • Ribbon客户端负载均衡策略测试及其改进
  • Leetcode 721. 账户合并
  • tomcat安装启动配置以及乱码问题
  • Request2:Post请求和Json
  • Leetcode—192. 统计词频【中等】(Shell)
  • VMamba:视觉SSM
  • 【CICD运维】GitLab + Shell + Minio实现应用程序自动打包,自动生成版本号,并且上传到Minio对象存储系统归档保存
  • 【Golang】Go语言中如何创建Cron定时任务
  • 基于vue框架的的二手车交易系统的设计与实现thx7v(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
  • Laravel|Lumen项目配置信息config原理
  • 解决:Ubuntu跑slam,遇到rviz闪退
  • Kamailio 网络拓扑案例分享
  • 深信服超融合HCI6.8.0R2滚动热升级至HCI6.9.1
  • 力扣143.重排链表
  • 软考机考系统架构师论文如何高效画图?
  • 《YOLO目标检测》—— YOLOv1 详细介绍
  • sealed class-kotlin中的封闭类
  • Flume面试整理-常见的Source类型