如何处理 Elasticsearch 索引中的空值

2023-11-22

我有一个 SQL 表,正在导出到 Elasticsearch。

其中一列是可为空的数字字段,某些记录中存在空值。

当我们尝试为表建立索引时,会出现以下错误:

表的 ETL(BigQuery -> ElasticSearch)作业之一:MLS 有 ES 失败 索引 20000 中的 10000 块可能是由于 不兼容的对象。

Failing BigQuery Table: MLS

Stack Trace of the error:

Traceback (most recent call last): File "/Users/asif/zodiacbackend/zodiacbackend/tasks.py", line 205, in

insertIntoES helpers.bulk(es, doc_generator(dataframe,table)) 文件 “/Users/asif/zodiacbackend/env/lib/python3.7/site-packages/elasticsearch/helpers/actions.py”, 第 300 行,批量为 ok,streaming_bulk 中的项目(客户端,操作, *args,**kwargs):文件“/Users/asif/zodiacbackend/env/lib/python3.7/site-packages/elasticsearch/helpers/actions.py”, 第 230 行,在 Streaming_bulk **kwargs 文件中 “/Users/asif/zodiacbackend/env/lib/python3.7/site-packages/elasticsearch/helpers/actions.py”, 第 158 行,在 _process_bulk_chunk 中引发 BulkIndexError("%i document(s) 索引失败。” % len(错误), 错误) elasticsearch.helpers.errors.BulkIndexError: ('2 个文档未能 索引。', [{'索引': {'_index': 'mls', '_type': 'mls', '_id': 'b100qHABEFI45Lp-z3Om','状态':400,'错误':{'类型': 'illegal_argument_exception', 'reason': '映射器 [Lot_Size_Sq_Ft] of 不同类型,current_type [text],merged_type [long]'},'data':{ 'Lot_Size_Sq_Ft':十进制('13504')}}}])

如何让系统识别空值?


用户 WittyID 错过了一些重要的事情,例如:

  1. 的值null_value必须与您的字段具有相同的数据类型,因此在他的示例中,他声明integer字段但已定义NULL as null_values, 会抛出json_parse_exception这被提到为important in the 官方链接如下:

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

  1. The null_value仅影响数据的索引方式,它不会修改 _source 文档,因此在源文档中,无论您通过什么,都将被存储,而不是中提到的null_values参数,在查询时您还需要使用该值null_value param..

简而言之,nullES 无法识别,因此您可以定义自定义值null然后用它来索引和查询null使用下面的示例很容易解释整个事情,任何人都可以尝试:

创建索引

{
  "mappings": {
    "properties": {
      "my_signed_integer": {
        "type":"integer",
        "null_value": -1 --> note we defining `null` values as `-1`.
      }
    }
  }
}

索引文档

  1. store null整数文档

    { “我的号码”:空 }

如果您从 ES 获取此文档,它将返回如下:

{
   "_index": "so-6053847",
   "_type": "_doc",
   "_id": "1",
   "_version": 1,
   "_seq_no": 0,
   "_primary_term": 1,
   "found": true,
   "_source": {
      "my_number": null. --> As explained earlier, in source its stored as `null`.
   }
}
  1. 指数非负值

    { “我的号码”:10 }

搜索查询以获取具有的整数null values

{
  "query": {
    "term": {
      "my_signed_integer": -1 -->notice same `null_value`, you need to mention
    }
  }
}

Result:

 "hits": [
         {
            "_index": "so-6053847",
            "_type": "_doc",
            "_id": "1",
            "_score": 1.0,
            "_source": {
               "my_signed_integer": null --> notice it shows `null`, not `-1`
            }
         }
      ]

搜索查询其他数字(不为空),即在我们的例子中10

{
  "query": {
    "term": {
      "my_signed_integer": 10
    }
  }
}

Result

"hits": [
         {
            "_index": "so-6053847",
            "_type": "_doc",
            "_id": "2",
            "_score": 1.0,
            "_source": {
               "my_signed_integer": 10 -->source matches the indexed value for this doc
            }
         }
      ]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何处理 Elasticsearch 索引中的空值 的相关文章

随机推荐

  • 如何在 Kubernetes IP Finder 的 Ignite XML 配置中设置主 Url

    使用 Ignite 2 4 和 k8s 1 9 的测试配置
  • 为什么我的 .NET 组件上的索引器并不总是可以从 VBScript 访问?

    我有一个 NET 程序集 我通过 COM 互操作从 VBScript 经典 ASP 访问它 其中一个类有一个索引器 也称为默认属性 我通过向索引器添加以下属性来从 VBScript 获得该索引器 DispId 0 它在大多数情况下都有效 但
  • DatePickerDialog 错误地强制执行最小日期为 1970 年 1 月 1 日

    我们有一位成员报告说 他无法在 DatePickerDialog 上设置 1970 年 1 月 1 日之前的日期 我们不会重现这个问题 我已经知道 DatePickerDialog 不会公开底层 DatePicker 的 setMinDat
  • 为什么这不是正方形?陆万金GL

    我设置了一个基本的 LWJGL 窗口 我正在尝试使用glBegin GL QUADS 方法 Square square new Square 25 25 25 是我调用 Square 类来绘制正方形的方式 但它是一个矩形 当我调用它时 我传
  • AWS Code PipeLine 未获取 BitBucket 帐户的所有存储库

    我正在使用 AWS CodeBuild 和 CodePipeline 服务在我的项目中实施 CI CD 使用 Bitbucket 的 AWS CodeBuild 我正在获取我的 Bitbucket 帐户的所有存储库 在创建 CodePipe
  • Java 7 和 8 中方法的最大大小

    我知道 Java 的方法不能大于 64 KB 该限制导致我们在生成代码时出现问题JavaCC语法 我们在使用 Java 6 时遇到了问题 并且能够通过更改语法来解决这个问题 Java 7 的限制是否已更改 或者 Java 8 是否计划更改
  • 哪些 CSS 伪类没有特异性?

    我正在研究一些 CSS 从阅读中发现有一些没有特殊性的伪类 例如where and not 还有更多吗 如果您检查规格 您可以找到特异性计算的完整细节 我要参考一下CSS 选择器级别 4包括所有新的选择器 对于给定元素 选择器的特异性计算如
  • 在React中,当父组件重新渲染时,是否props未更改的子组件不需要重新渲染?

    我认为事实是 当父组件在 React 中重新渲染时 通常所有子组件也会重新渲染 我做了一个实验来证实 https codesandbox io s currying pine r16rzi return div div Time now i
  • jquery setInterval或滚动

    我正在做一个项目 我需要听取scroll事件 我想知道什么是更好的方法 第一种方法 function scroll if window scrollTop gt 200 top fadeIn else top fadeOut if menu
  • 将整个列(列中的每个值)放入数组中?

    所以我正在制作一个宏来做很多事情 一件事是从sheet2中查找sheet1中单元格的重复项 给定工作表 1 中的列 A 工作表 2 上的列 B 中的任何值是否与工作表 1 的列 A 中的任何值匹配 我知道有删除重复项 但我只想标记它们 而不
  • Javascript:找出点击了哪个元素而不附加任何事件侦听器?

    我对寻找解决此问题的方法感到困惑 考虑下面的html div div div div div div div div div div div div 事件侦听器附加到父元素 如果用户单击 child c 有没有办法使用 myFunc 找出单
  • 如何使用linux命令获取部分路径

    例如需要获取路径的一部分 home server folder1 rev 1111 bin 需要的部分是 rev 1111 我将尝试通过 PWD 和 grep 命令进行解析 但我是 Linux 新手 我不能这样做 pwd awk F pri
  • 函数没有隐式类型

    我正在尝试学习使用函数 我有以下代码 program main implicit none write test 4 end program integer function test n implicit none integer int
  • Hibernate/JPA - 实体侦听器未正确调用

    我正在尝试在我的 Seam Hibernate JPA 应用程序中利用 EntityListener 对象和回调方法 我在 JBoss 5 1 上使用 Seam 2 2 管理的持久性上下文 后端使用 PostgreSQL 9 1 我声明了以
  • 在 iOS 上使用 SOAP Web 服务 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我正在尝试为 iPad 编
  • 如何在 Java 中运行 GDAL (ogr2ogr) 将 Shapefile 转换为 GeoJSON

    我是编程初学者 在尝试使用外部库时感到非常困惑 我将地图保存在 shapefile 中 并使用 Mapshaper org 网站将其转换为 GeoJSON 只有这样我才能从 Java 应用程序读取地图 我希望用户能够直接导入 shapefi
  • CSS:将元素集中在 y 轴的标准(动态)方式

    我的问题或多或少是不言自明的 我试图找到一种标准的动态方法来将元素集中在 y 轴上 就像 margin auto 对于 x 轴 有任何想法吗 我说的是下面的一段代码 空白页面 在中心对齐一张图像 div style display bloc
  • 找到图像中相似区域的好算法?

    我想搜索两个图像中的相似区域 但我不知道什么效果最好 这些区域不会以任何方式缩放或转换 但可能出现在两个图像中的任何位置 我想知道在哪里 他们周围还有其他东西 这是我想要的一个例子 我怎样才能做到这一点 分割图像 获取已找到区域的绑定矩形
  • 多线程中的静态变量

    I found that declaring a variable as static makes no sense in 多线程 我认为 这是因为every thread has its own stack 这是唯一的原因吗 我知道sta
  • 如何处理 Elasticsearch 索引中的空值

    我有一个 SQL 表 正在导出到 Elasticsearch 其中一列是可为空的数字字段 某些记录中存在空值 当我们尝试为表建立索引时 会出现以下错误 表的 ETL BigQuery gt ElasticSearch 作业之一 MLS 有