es BadRequestError问题情况

es BadRequestError问题情况

问题

bug信息

复制代码
elasticsearch.BadRequestError: BadRequestError(400, 'mapper_parsing_exception', 'failed to parse')

引起错误的代码

python 复制代码
a.save()

bug分析

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

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

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

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

所以将NaN的数据进行删除

python 复制代码
df.fillna('',inplace=True)

再次运行,错误消失了

完整代码

python 复制代码
from elasticsearch_dsl import (connections,Index,Document,Text,Integer,Keyword)
import pandas as pd
# 连接es
conn = 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()
相关推荐
Lx35210 分钟前
如何正确选择Hadoop数据压缩格式:Gzip vs LZO vs Snappy
大数据·hadoop
专注API从业者19 分钟前
Python/Node.js 调用taobao API:构建实时商品详情数据采集服务
大数据·前端·数据库·node.js
极造数字2 小时前
深度剖析MES/MOM系统架构:功能模块与核心优势解析
大数据·人工智能·物联网·系统架构·制造
让头发掉下来2 小时前
Hive 创建事务表的方法
大数据·hive·hadoop
计算机毕业设计木哥3 小时前
计算机毕设大数据选题推荐 基于spark+Hadoop+python的贵州茅台股票数据分析系统【源码+文档+调试】
大数据·hadoop·python·计算机网络·spark·课程设计
kong@react4 小时前
spring boot配置es
spring boot·后端·elasticsearch
最初的↘那颗心4 小时前
Flink Stream API 源码走读 - socketTextStream
大数据·flink
Elasticsearch4 小时前
Elasticsearch:如何使用 Qwen3 来做向量搜索
elasticsearch
都叫我大帅哥4 小时前
Flink Slot 终极指南:从入门到避坑,幽默解析分布式计算的“工位经济学
java·大数据·flink
UMI赋能企业5 小时前
AI数据仓库的核心优势解析
大数据·人工智能