如何在弹性搜索上强制浮动渲染?

时间:2017-08-23 21:25:57

标签: elasticsearch

我有一个带有映射的索引elasticsearch:

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

现在我可以使用float而不是float来索引文档:

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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