【问题标题】:How can I force a float casting on elasticsearch?如何强制在 elasticsearch 上进行浮点转换?
【发布时间】:2017-08-24 14:50:04
【问题描述】:

我有一个带有映射的索引弹性搜索:

{
  "book": {
    "mappings": {
      "educational": {
        "properties": {
          "price": {
            "type": "float"
          },
          "title": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          }
        }
      }
    }
  }
}

现在我可以使用字符串而不是浮点数来索引文档:

{
  "title": "Test",
  "price": "120.99"
}

当我稍后检索此文档时,价格的值将显示为一个字符串,尽管映射表明它应该是一个浮点数。

我知道价格仍将被索引为浮点数,尽管它以字符串形式呈现,但有没有办法强制将字段转换为浮点数以使数据具有更好的一致性?

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    当使用coercing 时,该字段在内部将存储为浮点数。但是原始文档不会更改,这意味着原始 JSON 仍将包含该字段作为字符串。

    您可以在管道中使用convert processor 在文档被索引之前将字符串更改为浮点数。

    【讨论】:

      猜你喜欢
      • 2017-02-23
      • 2016-08-05
      • 1970-01-01
      • 1970-01-01
      • 2015-10-11
      • 1970-01-01
      • 1970-01-01
      • 2011-04-26
      • 2021-09-10
      相关资源
      最近更新 更多