Elasticsearch NEST DefaultMapping供使用

标签 elasticsearch nest elasticsearch-net

目前,我一直在通过 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() 用于文档 ID 的类型属性方法
  2. 用于路由参数的类型属性(对于父/子关系设置很有用,而且当您需要路由时也有用),通过 .Routing()方法
  3. 通过 .Ignore() 序列化类型时要忽略哪些属性方法
  4. 哪些属性应通过 .PropertyName() 使用不同的字段名称进行序列化方法

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

关于Elasticsearch NEST DefaultMapping供使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48813514/

相关文章:

c# Nest 和 Elasticsearch 聚合

elasticsearch - Grafana与Elasticsearch-不显示指标/日志切换器

scala - 嵌入式ES实例在运​​行单元测试时失败

c# - 使用 ElasticLowLevelClient 客户端在 Elasticssearch 中批量索引

elasticsearch - Elasticsearch必须在列表对象上

elasticsearch - 如何在ES中查询并获取父文档和合格的子文档?

c# - NEST:在条件下添加术语查询

json - ElasticClient检查连接状态时出现错误

c# - 如何将 MSSQL 同步到 Elasticsearch?

elasticsearch - ElasticSearch映射:是否可以自动截断日期以适合其格式?