我有一个弹性搜索索引,其映射如下:
{
"indexName": {
"mappings": {
"vault": {
"properties": {
"someMapping": {
"dynamic": "true",
"properties": {
"A": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"B": {
"type": "float"
},
"C": {
"type": "float"
}
}
}
}
}
}
}
}
我需要获得嵌套映射'类型,例如:
[
{Name = "A", Type = "text"},
{Name = "B", Type = "float"},
{Name = "C", Type = "float"}
]
我需要通过.NET Core应用程序中的NEST API来实现这一点。 到目前为止,由于我无法访问我需要的字段的嵌套属性(在此示例中" someMapping")
答案 0 :(得分:0)
我能够通过以下步骤实现我想要的目标:
allIndicesMappings = elasticClient.GetMapping(new GetMappingRequest()).Mappings
item.Value.FirstOrDefault().Value.Properties.FirstOrDefault(x => x.Key.Name == "someMapping").Value
返回someMapping字段,但我们仍然无法访问它的嵌套属性。我们可以通过将其转换为ObjectProperty
来获取该访问权限:
((ObjectProperty)item.Value.FirstOrDefault().Value.Properties.FirstOrDefault(x => x.Key.Name == "metadata").Value).Properties
现在在Properties
中我们有嵌套字段及其映射