我正在向 elasticsearch 添加一个架构,并在该架构中尝试添加一些先前已作为字符串处理的长字段。我创建了一个新索引并重新处理了数据,但在新索引中这些字段仍然显示为字符串。
来自索引端点的映射的相关部分:
image_features: {
properties: {
brightness: {
type: "string"
},
contrast: {
type: "string"
},
height: {
type: "long"
},
sharpness: {
type: "string"
},
width: {
type: "long"
}
}
}
Run Code Online (Sandbox Code Playgroud)
但返回发回:
image_features: {
width: "400",
height: "400",
sharpness: "good",
contrast: "good",
brightness: "good"
},
Run Code Online (Sandbox Code Playgroud)
我最初创建了一个新索引并使用reindex来迁移数据。我还尝试创建一个新索引并通过批量操作重新加载所有数据。但这些值仍然是剩余的字符串。
你所看到的是源返回,ES将始终按照你发送的方式存储源,因此,它将返回你发送给他的内容。
但是,您可以确定 和image_features.height已image_features.width被处理得同样长并已建立索引,因为您的映射将这些字段声明为long。
如果您希望源返回数值,您需要发送带有数值的源(见下文),ES 不会转换您的源值,这意味着您需要修改执行索引的客户端进程。
image_features: {
width: 400,
height: 400,
sharpness: "good",
contrast: "good",
brightness: "good"
},
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
661 次 |
| 最近记录: |