Elasticsearch NEST DefaultMappingFor用法
Elasticsearch NEST DefaultMappingFor usage
目前,我一直在通过 REST Api 添加映射并使用 NEST 以编程方式索引文档。
但是,我最近遇到了 NEST 的 DefaultMappingFor(在 ConnectionSettings 中)并想知道它是如何使用的。 (不会很快飙升所以问。)
问题:在源代码中,如果我使用DefaultMappingFor设置映射,是否意味着不需要使用Rest创建映射Api因为,也许(我认为),NEST 将在索引文档时使用声明的默认映射?
谢谢。
DefaultMappingFor()
and DefaultMappingFor<T>()
允许您为给定的 CLR 类型配置默认值。两者都允许您配置:
- 要使用的默认索引名称,通过
.IndexName()
方法
- 要使用的默认类型名称,通过
.TypeName()
方法
- mapping as Parent/Child relationship时使用的默认关系名,通过
.RelationName()
方法
此外,DefaultMappingFor<T>()
允许您配置:
- 通过
.IdProperty()
方法 用于文档 id 的类型上的 属性
- 属性 用于路由参数的类型(对于 Parent/Child 关系设置很有用,而且当你需要路由时),通过
.Routing()
方法
- 通过
.Ignore()
方法序列化类型时要忽略哪些属性
- 哪些属性应该通过
.PropertyName()
方法用不同的字段名序列化
为一个类型设置这些中的任何一个意味着 NEST 将在它拥有的任何约定上使用这些。典型的使用是 .IndexName()
和 .TypeName()
(尽管 types are removed in Elasticsearch 6.x),这意味着您不需要在每个请求中指定其中任何一个(除非您想覆盖此默认值映射也是)。
目前,我一直在通过 REST Api 添加映射并使用 NEST 以编程方式索引文档。
但是,我最近遇到了 NEST 的 DefaultMappingFor(在 ConnectionSettings 中)并想知道它是如何使用的。 (不会很快飙升所以问。)
问题:在源代码中,如果我使用DefaultMappingFor设置映射,是否意味着不需要使用Rest创建映射Api因为,也许(我认为),NEST 将在索引文档时使用声明的默认映射?
谢谢。
DefaultMappingFor()
and DefaultMappingFor<T>()
允许您为给定的 CLR 类型配置默认值。两者都允许您配置:
- 要使用的默认索引名称,通过
.IndexName()
方法 - 要使用的默认类型名称,通过
.TypeName()
方法 - mapping as Parent/Child relationship时使用的默认关系名,通过
.RelationName()
方法
此外,DefaultMappingFor<T>()
允许您配置:
- 通过
.IdProperty()
方法 用于文档 id 的类型上的 属性
- 属性 用于路由参数的类型(对于 Parent/Child 关系设置很有用,而且当你需要路由时),通过
.Routing()
方法 - 通过
.Ignore()
方法序列化类型时要忽略哪些属性 - 哪些属性应该通过
.PropertyName()
方法用不同的字段名序列化
为一个类型设置这些中的任何一个意味着 NEST 将在它拥有的任何约定上使用这些。典型的使用是 .IndexName()
和 .TypeName()
(尽管 types are removed in Elasticsearch 6.x),这意味着您不需要在每个请求中指定其中任何一个(除非您想覆盖此默认值映射也是)。