Elasticsearch NEST DefaultMappingFor用法

Elasticsearch NEST DefaultMappingFor usage

目前,我一直在通过 REST Api 添加映射并使用 NEST 以编程方式索引文档。

但是,我最近遇到了 NEST 的 DefaultMappingFor(在 ConnectionSettings 中)并想知道它是如何使用的。 (不会很快飙升所以问。)

问题:在源代码中,如果我使用DefaultMappingFor设置映射,是否意味着不需要使用Rest创建映射Api因为,也许(我认为),NEST 将在索引文档时使用声明的默认映射?

谢谢。

DefaultMappingFor() and DefaultMappingFor<T>() 允许您为给定的 CLR 类型配置默认值。两者都允许您配置:

  1. 要使用的默认索引名称,通过.IndexName()方法
  2. 要使用的默认类型名称,通过.TypeName()方法
  3. mapping as Parent/Child relationship时使用的默认关系名,通过.RelationName()方法

此外,DefaultMappingFor<T>()允许您配置:

  1. 通过 .IdProperty() 方法
  2. 用于文档 id 的类型上的 属性
  3. 属性 用于路由参数的类型(对于 Parent/Child 关系设置很有用,而且当你需要路由时),通过 .Routing() 方法
  4. 通过.Ignore()方法序列化类型时要忽略哪些属性
  5. 哪些属性应该通过.PropertyName()方法用不同的字段名序列化

为一个类型设置这些中的任何一个意味着 NEST 将在它拥有的任何约定上使用这些。典型的使用是 .IndexName().TypeName()(尽管 types are removed in Elasticsearch 6.x),这意味着您不需要在每个请求中指定其中任何一个(除非您想覆盖此默认值映射也是)。