Elasticsearch NEST DefaultMappingFor用法

时间:2018-02-15 17:57:12

标签: elasticsearch nest elasticsearch-net

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

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

问题:在源代码中,如果我使用DefaultMappingFor设置映射,这是否意味着没有必要使用Rest Api创建映射,因为,可能(我认为)和NEST每当文档被编入索引时,它将使用声明的默认映射吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

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

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

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

    1. 通过.IdProperty()方法
    2. 用于文档ID的类型的属性
    3. 用于路由参数的类型的属性(对于父/子关系设置很有用,但在需要路由时也是如此),通过.Routing()方法
    4. 通过.Ignore()方法
    5. 序列化类型时要忽略的属性
    6. 应通过.PropertyName()方法
    7. 使用不同的字段名称序列化哪些属性

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