当前位置: 首页 > 知识库问答 >
问题:

如何使用批量API将日期格式的空值插入elasticsearch

薛飞星
2023-03-14

在elasticsearch中,我在映射中设置了一个日期字段,如下所示:

"create_time" : {
 "type" : "date",
 "null_value" : "NULL"
 },

我用熊猫来处理我的数据,它是这样的:

    create_date
0       NULL
1       2019-09-23 14:32:32.217377

在python中,我使用批量API,方法是:

def gendata(data, index):
    INDEX = index
    TYPE = "doc"
    for record in data:
        yield {
            "_index": INDEX,
            "_type": TYPE,
            "_source": record,
        }
bulk(client,gendata(data.to_dict(orient="records"),index="test"))

但我发现BulkIndexer错误:(“1个文档未能索引。”,[{'index':{'u index':'ics_asset','u type':'doc','u id':'85vaXG0Be27aFy3eNkCZ','status':400,'error':{'type':'非法参数_exception','reason':'mapper[create_date]不同类型,当前类型[date],合并类型[text],'data','data':{'create_date':'null'}}])。

我如何使用熊猫批量右“空”值与日期格式来弹性搜索。

谢谢

共有1个答案

江鸿羲
2023-03-14

关于null_值的文档明确指出:

null_value需要与字段的数据类型相同。例如,long字段不能有字符串null_value

这意味着您不能将字符串指定为日期字段的NULL值。

null_value仅在您想显式查询没有特定字段值的文档时有用。也许您可以分配一个像1900-01-01这样您就可以使用该特定日期查询它们。

否则,您可以删除null_值选项,您将完全能够使用常规的null值对文档进行索引。唯一的缺点是您无法按创建日期检索文档。

 类似资料:
  • 我在将空值插入MySQL表的日期字段时遇到问题。 下面是插入查询: s1和s2列采用字符串值,d1和d2列采用日期。当我只使用字符串字段运行这个查询时,没有问题。 日期值可以设置为空,所以我没有在查询中包含引号,而是在前面将它们添加到变量中。这是我用来设置日期值的php代码: 当日期值全部设置时,记录将被正确插入。但是,当其中一个日期为空时,将不插入任何内容。 为什么我不能像这样在MySQL中插入

  • 下面是我们用来填充SQL数据库中的表的存储过程。@excDate是从C#批处理作业中发送的参数,该作业从和Excel电子表格中获取值。 如果当前代理的培训处于活动状态,则电子表格的“过期日期”单元格中不会有值。这将导致从C#代码向存储过程发送一个空字符串,然后将其转换为日期时间值1900-01-01。在我需要使用光标将新记录插入表之前,这一切都是正常的。 如果@exDate值是1900-01-01

  • 问题内容: 我正在使用jQuery datepicker datepicker的格式是这个 我在插入数据库时​​出错,仅插入0000-00-00 00 00 00 我的密码是 我确定我的插入内容正确无误。 问题答案: 如日期和时间文字中所述: MySQL可以识别以下格式的值: 作为或格式的字符串。允许使用“宽松”语法:任何标点符号都可以用作日期部分之间的分隔符。例如,,,,和是相等的。 * 作为没

  • 问题内容: 我正在使用新的日期时间API,但是在运行时: 它抛出: 查看LocalDate类的源代码时,我看到: 如文档中所述: 此方法将根据类文档中描述的简单字母和符号模式创建格式化程序。 并且所有这些字母都已定义。 那么为什么不允许我们使用一些图案字母呢? 问题答案: 仅代表一个日期,而不代表DateTime。因此,在格式化a时,“ HH:mm:ss”毫无意义。假设您要代表日期和时间,请改用a

  • 我正在玩新的日期时间API,但在运行时: 它抛出: 在查看LocalDate类的源代码时,我看到: 正如文件中所述: 该方法将根据类文档中描述的字母和符号的简单模式创建格式化程序。 所有这些字母都有定义。 那么为什么选择DateTimeFormatter呢。ofPattern不允许我们使用一些模式字母?

  • 问题内容: 我正在尝试使用Nest将多个记录插入数据库。使用IndexMany类插入确实可以,但是我还需要通过json字符串插入对象。 我确实在github上进行了查找,并找到了一些如何使用RAWclient的示例。在代码示例下面,我插入json。 一些其他信息: jsondata: var twitter: 我从数据库收到的结果: 有人知道这个问题可能是什么吗?还是我在json /代码中丢失了什