elasticsearch 如何使用嵌套对象初始值设定项语法自动映射Elasticsearch属性,elasticsearch,.net-core,nest,elasticsearch,.net Core,Nest" /> elasticsearch 如何使用嵌套对象初始值设定项语法自动映射Elasticsearch属性,elasticsearch,.net-core,nest,elasticsearch,.net Core,Nest" />

elasticsearch 如何使用嵌套对象初始值设定项语法自动映射Elasticsearch属性

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

有没有一种方法可以将NEST的
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
        }
      }
    }
  }
}