首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ES不敏感布尔字段

ES不敏感布尔字段
EN

Stack Overflow用户
提问于 2020-05-10 07:01:25
回答 1查看 331关注 0票数 0

我有1m记录,其中一个列是布尔的。它包含三个值。FALSE, TRUE, [Blank]

我希望这个字段被视为布尔值。由于这种情况,它不被视为布尔值。据我所知,ES支持真或“真”作为布尔值,而不支持这方面的分析器。

还有其他方法处理我的记录吗?记录也是动态的。当负载到达时,必须适当地存储它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-10 07:13:41

是的,有一种方法可以使用转换字段的摄食管道来实现这一点。

您可以创建一个包含处理器的管道,如下所示。转换为布尔值时,转换处理器将忽略大小写,因此"TRUE"将被转换为true。"FALSE"也一样。添加ignore_missing: true以忽略空值:

代码语言:javascript
复制
PUT _ingest/pipeline/bool-pipeline
{
  "description": "converts FALSE/TRUE to boolean",
  "processors" : [
    {
      "convert" : {
        "field" : "bool",
        "type": "boolean",
        "ignore_missing": true
      }
    }
  ]
}

然后,在对文档进行索引时,只需在查询中指定管道,文档就会在索引之前通过bool-pipeline

代码语言:javascript
复制
PUT index/_doc/123?pipeline=bool-pipeline
{
    "bool": "TRUE"
}

PUT index/_doc/456?pipeline=bool-pipeline
{
    "bool": "FALSE"
}

PUT index/_doc/789?pipeline=bool-pipeline
{
    "bool": null
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61708339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档