elasticsearch 如何使用嵌套对象初始值设定项语法自动映射Elasticsearch属性
有没有一种方法可以将NEST的elasticsearch 如何使用嵌套对象初始值设定项语法自动映射Elasticsearch属性,elasticsearch,.net-core,nest,elasticsearch,.net Core,Nest,有没有一种方法可以将NEST的AutoMap功能与对象初始值设定项语法一起使用 .Nested<PackageDependency>(nn => nn .Name(pv => pv.Dependencies.First()) .AutoMap() ) 根据本教程,对象初始值设定项语法“在整个客户端都得到完全支持”。因此,使用本教程中的一个示例,我将如何使用对象初始值设定项语法执行此映射 .Nested<PackageDependency>(n
AutoMap
功能与对象初始值设定项语法一起使用
.Nested<PackageDependency>(nn => nn
.Name(pv => pv.Dependencies.First())
.AutoMap()
)
根据本教程,对象初始值设定项语法“在整个客户端都得到完全支持”。因此,使用本教程中的一个示例,我将如何使用对象初始值设定项语法执行此映射
.Nested<PackageDependency>(nn => nn
.Name(pv => pv.Dependencies.First())
.AutoMap()
)
但是我在NestedProperty
对象上找不到与AutoMap
相关的属性。这同样适用于TextProperty
等
如果不可能,我只使用Fluent API语法-没问题。但是我想确保我没有遗漏一些明显的东西。您已经找到了一个方法,
AutoMap()
,它在对象初始值设定项语法中没有直接对应的对应项:)因为没有通用类型参数来表示可用的CLR类型,所以不能以相同的方式对其进行建模
但是,使用AutoMap
使用的组件可以达到相同的效果
var nestedProperty=new nestedProperty
{
Name=Nest.infere.Property(pv=>pv.Dependencies.First()),
属性=新属性(
新建PropertyWalker(typeof(PackageDependency),null).GetProperties()
};
这将产生以下JSON,该JSON分配了从Nest.Infer.Property(pv=>pv.Dependencies.First())
解析的字段名(默认情况下为Dependencies
)
如果需要覆盖任何将以这种方式自动映射的属性,您可以在从
.GetProperties()
方法调用返回的iProperty
上进行覆盖,也可以使用属性
上的索引器,在本例中为属性
。。。。完美的非常感谢-这正是我想要的!
{
"type": "nested",
"properties": {
"name": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"version": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"framework": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}