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()
相关推荐
诗旸的技术记录与分享2 小时前
Flink-1.19.0源码详解-番外补充3-StreamGraph图
大数据·flink
资讯分享周2 小时前
Alpha系统联结大数据、GPT两大功能,助力律所管理降本增效
大数据·gpt
G皮T3 小时前
【Elasticsearch】深度分页及其替代方案
大数据·elasticsearch·搜索引擎·scroll·检索·深度分页·search_after
TDengine (老段)4 小时前
TDengine STMT2 API 使用指南
java·大数据·物联网·时序数据库·iot·tdengine·涛思数据
用户Taobaoapi20145 小时前
母婴用品社媒种草效果量化:淘宝详情API+私域转化追踪案例
大数据·数据挖掘·数据分析
G皮T6 小时前
【Elasticsearch】检索排序 & 分页
大数据·elasticsearch·搜索引擎·排序·分页·检索·深度分页
飞询9 小时前
Docker 安装 Elasticsearch 9
elasticsearch·docker
小新学习屋10 小时前
Spark从入门到熟悉(篇三)
大数据·分布式·spark
rui锐rui10 小时前
大数据学习2:HIve
大数据·hive·学习
G皮T10 小时前
【Elasticsearch】检索高亮
大数据·elasticsearch·搜索引擎·全文检索·kibana·检索·高亮