行业知识
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()
上一篇:服务好的浪潮服务器在哪里?