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()
相关推荐
小牛头#4 小时前
clickhouse 各个引擎适用的场景
大数据·clickhouse·机器学习
lifallen6 小时前
Paimon LSM Tree Compaction 策略
java·大数据·数据结构·数据库·算法·lsm-tree
元宇宙时间6 小时前
全球发展币GDEV:从中国出发,走向全球的数字发展合作蓝图
大数据·人工智能·去中心化·区块链
张先shen8 小时前
Elasticsearch RESTful API入门:基础搜索与查询DSL
大数据·spring boot·elasticsearch·搜索引擎·全文检索·restful
isNotNullX10 小时前
数据中台架构解析:湖仓一体的实战设计
java·大数据·数据库·架构·spark
数据库安全13 小时前
首批|美创智能数据安全分类分级平台获CCIA“网络安全新产品”
大数据·人工智能·web安全
厚道14 小时前
Elasticsearch 的存储原理
后端·elasticsearch
袋鼠云数栈14 小时前
使用自然语言体验对话式MySQL数据库运维
大数据·运维·数据库·后端·mysql·ai·数据治理·数栈·data+ai
阿里云大数据AI技术14 小时前
数据 + 模型 驱动 AI Native 应用发展
大数据·数据库·人工智能
朴拙数科15 小时前
在 macOS 上安装与自定义 Oh My Zsh:让终端美观又高效 [特殊字符]
大数据·elasticsearch·macos