小工具知识网

当前位置: 首页 > 行业知识 > es BadRequestError问题情况

行业知识

es BadRequestError问题情况

2026-11-15 18:01:57 来源:互联网转载

es BadRequestError问题情况

  • 问题
    • bug信息
    • 引起错误的代码
    • bug分析
    • 完���代码

      问题

      bug信息

      elasticsearch.BadRequestError: BadRequestError(400, 'mapper_parsing_exception', 'failed to parse')

      引起错误的代码

      a.save()

      bug分析

      一开始我以为是版本问题,但是按照配置的字段属性都是正确的,如下:

      ()
      # 创建document对象class Auhtor(Document):    id = Keyword(),    name = Text(),    dynasty = Integer(),    life = Text(),    path = Text(),    url = Text()        class Index:        name = "author"

      然后查看了一下我的数据,发现有一个NaN数据类型,这个数据类型在es中是不存在的

      id          1name      武夷君dynasty     1life       武夷君又称武夷王、武夷显道真君,是中国民间信奉的神仙之一,属于中国福建武夷山的山神、乡土神。...path      NaNurl           https://www.gushicimingju.com//shiren/wuyijun/

      所以将NaN的数据进行删除

      ()
      df.fillna('',inplace=True)

      再次运行,错误消失了

      完整代码

      from elasticsearch_dsl import (connections,Index,Document,Text,Integer,Keyword)import pandas as pd# 连接esconn = connections.create_connection(hosts=["http://localhost:9200"])# 创建document对象class Auhtor(Document):    id = Keyword(),    name = Text(),    dynasty = Integer(),    life = Text(),    path = Text(),    url = Text()        class Index:        name = "author"# 判断索引是否存在if Index('author').exists():    Index('author').delete()df = pd.read_csv('./data/author_msg.csv')df.fillna('',inplace=True)a_df = df.iloc[0,:]print(a_df)a = Auhtor(    id = a_df['id'],    name = a_df['name'],    dynasty = a_df.dynasty,    life = a_df.life,    path = a_df.path,    url = a_df.url,)# print(a.url)a.save()

上一篇:服务好的浪潮服务器在哪里?

下一篇:教你安全下载Youtube高清视频的方法指南!