我每天都在AWS上托管的Elastic服务器上创建索引。弹性索引格式为abcnoteyyyyMMdd
。您可以在下面查看Index的映射结果。我正在通过ElasticSearch.Nest创建索引。
索引创建代码:
DateTime _instance = DateTime.Now;
if (!(client.IndexExists("eccnote" + _instance.ToString("yyyyMMdd"))).Exists)
{
var createIndexResult = client.CreateIndex("eccnote" + _instance.ToString("yyyyMMdd"));
var mapResult = client.Map<ESNote>(c => c.MapFromAttributes().IgnoreConflicts().Type("esnote").Indices("eccnote" + _instance.ToString("yyyyMMdd")));
}
但是有一些问题,我不知道它是什么?正在成功创建索引。但有一天我得到“索引”:映射结果中缺少“not_analyzed”。例如,这里是索引日期为20160615的映射结果。这里的结果是正确的格式。
GET **indexname20160615**/_mapping?pretty
output result:-
{
"indexname" : {
"mappings" : {
"type" : {
"properties" : {
"@timestamp" : {
"type" : "date",
"format" : "dateOptionalTime"
},
"account" : {
"type" : "string",
"index" : "not_analyzed"
},
"type" : {
"type" : "integer"
},
"userid" : {
"type" : "string",
"index" : "not_analyzed"
}
}
}
}
}
}
但是当我看到索引的映射结果日期为20160614时,它显示为这样。这里“index”:“not_analyzed”属性缺失。它只发生在随机的一天。我不知道为什么?
获取 indexname20160614 / _ mapping?pretty
{
indexname20160614" : {
"mappings" : {
"indextype" : {
"properties" : {
"@timestamp" : {
"type" : "date",
"format" : "dateOptionalTime"
},
"session" : {
"type" : "string"
},
"tn" : {
"type" : "string"
},
"type" : {
"type" : "long"
},
"userid" : {
"type" : "string"
}
}
}
}
}
}
为什么会这样?因为每天通过C#代码,我们在ElasticServer上创建索引,但有时它的格式正确,有时则不是。