如何在 Elasticsearch 中为格式为 JSON 的文件创建整数字段索引?
How to create an index with integer fields in Elasticsearch for the JSON file of format?
我正在尝试在 Elasticsearch 中为格式为 JSON 的文件创建索引:
{ "index" : { "_index" : "entity", "_type" : "type1", "_id" : "0" } }
{ "eid":"guid of Event autogenerated", "entityInfo": { "entityType":"qualityevent", "defaultLocale":"en-US" }, "systemInfo": { "tenantId":"67" }, "attributesInfo" : { "jobId":"21", "matchStatus": "new" } }
{ "index" : { "_index" : "entity", "_type" : "type1", "_id" : "1" } }
{ "eid":"guid of Event autogenerated", "entityInfo": { "entityType":"qualityevent", "defaultLocale":"en-US" }, "systemInfo": { "tenantId":"67" }, "attributesInfo" : { "jobId":"20", "matchStatus": "existing" } }
我希望字段 jobId 和 tenantId 为整数。
我在 curl 命令中给出以下映射:
curl -XPUT http://localhost:9200/entity -d '
{
"mappings": {
"entityInfo":
{
"properties" : {
"entityType" : { "type":"string","index" : "not_analyzed"},
"defaultLocale":{ "type":"string","index" : "not_analyzed"}
}
},
"systemInfo":
{
"properties" : {
"tenantId": { "type" : "integer" }
}
},
"attributesInfo" :
{
"properties" : {
"jobId": { "type" : "integer" },
"matchStatus": { "type":"string","index" : "not_analyzed"}
}
}
}
}
';
这不会给我一个错误。但是,它会创建新的空字段 jobId 和 tenantId 作为整数,并将现有数据作为字符串保存到 attributesInfo.jobId 中。 systemInfo.tenantId也是如此。我想在 Kibana 中使用这两个字段进行可视化。我目前无法使用它们,因为它们是空的。
我是 Kibana 和 Elasticsearch 的新手,所以我不确定映射是否正确。
我也尝试了其他几个映射,但它们会出错。以上映射不报错。
这是 Kibana 上的“发现”选项卡的样子:1
请让我知道哪里出错了。
我按照你说的试过了,但没有用。经过大量的反复试验,我意识到我的映射是不正确的。我终于写出了正确的映射,现在它可以正常工作了。 Jobid 和 TenantId 被 Kibana 识别为数字。我是 JSON、kibana、Bulk、Elastic 的新手,所以我花了一些时间来了解映射的工作原理。
我正在尝试在 Elasticsearch 中为格式为 JSON 的文件创建索引:
{ "index" : { "_index" : "entity", "_type" : "type1", "_id" : "0" } }
{ "eid":"guid of Event autogenerated", "entityInfo": { "entityType":"qualityevent", "defaultLocale":"en-US" }, "systemInfo": { "tenantId":"67" }, "attributesInfo" : { "jobId":"21", "matchStatus": "new" } }
{ "index" : { "_index" : "entity", "_type" : "type1", "_id" : "1" } }
{ "eid":"guid of Event autogenerated", "entityInfo": { "entityType":"qualityevent", "defaultLocale":"en-US" }, "systemInfo": { "tenantId":"67" }, "attributesInfo" : { "jobId":"20", "matchStatus": "existing" } }
我希望字段 jobId 和 tenantId 为整数。
我在 curl 命令中给出以下映射:
curl -XPUT http://localhost:9200/entity -d '
{
"mappings": {
"entityInfo":
{
"properties" : {
"entityType" : { "type":"string","index" : "not_analyzed"},
"defaultLocale":{ "type":"string","index" : "not_analyzed"}
}
},
"systemInfo":
{
"properties" : {
"tenantId": { "type" : "integer" }
}
},
"attributesInfo" :
{
"properties" : {
"jobId": { "type" : "integer" },
"matchStatus": { "type":"string","index" : "not_analyzed"}
}
}
}
}
';
这不会给我一个错误。但是,它会创建新的空字段 jobId 和 tenantId 作为整数,并将现有数据作为字符串保存到 attributesInfo.jobId 中。 systemInfo.tenantId也是如此。我想在 Kibana 中使用这两个字段进行可视化。我目前无法使用它们,因为它们是空的。
我是 Kibana 和 Elasticsearch 的新手,所以我不确定映射是否正确。
我也尝试了其他几个映射,但它们会出错。以上映射不报错。
这是 Kibana 上的“发现”选项卡的样子:1
请让我知道哪里出错了。
我按照你说的试过了,但没有用。经过大量的反复试验,我意识到我的映射是不正确的。我终于写出了正确的映射,现在它可以正常工作了。 Jobid 和 TenantId 被 Kibana 识别为数字。我是 JSON、kibana、Bulk、Elastic 的新手,所以我花了一些时间来了解映射的工作原理。