Elasticsearch.Nest 教程系列 4 映射
本系列博文是“伪”官方文档翻译(更加本土化),并非完全将官方文档进行翻译,而是在查阅、测试原始文档并转换为自己真知灼见后的“准”翻译。有不同见解 / 说明不周的地方,还请海涵、不吝拍砖 :)
官方文档见此:https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/introduction.html
本系列对应的版本环境:ElasticSearch@7.3.1,NEST@7.3.1,IDE 和开发平台默认为 VS2019,.NET CORE 2.1
虽然 ES 可以自动推断部分类型(如 string, bool, number)并进行映射,但无法满足在所有业务场景,显式指定模型映射至关重要。
本章节主要说明如何通过 NEST 将 .NET 中 POCOs 模型的属性跟 ES 中存储的 JSON 文档和字段进行映射。
NEST 提供了如下几种转换方式:
-
Auto mapping:自动转换,根据 POCO 属性类型进行推断,见此博文:NEST 教程系列 4-1 映射:Auto mapping | 自动映射
-
Attribute mapping:通过特性进行映射,见此博文:NEST 教程系列 4-2 映射:Attribute mapping | 通过特性进行映射
-
Fluent mapping:流畅映射,见此博文:NEST 教程系列 4-3 映射:Fluent mapping | 流畅映射
-
through the Visitor Pattern:通过 Visitor 模式进行映射,见此博文:NEST 教程系列 4-4 映射:through the Visitor Pattern | 通过访客模式进行映射
-
Parent/Child relationships:子父级关系映射,,见此博文:NEST 教程系列 4-5 映射:Parent/Child relationships | 子父级关系映射
以上几种映射方式可以组合起来以形成整体映射方法。
此外,还有一些控制方法:
-
Ignoring properties:忽略属性,见此博文:NEST 教程系列 4-6 映射:Ignoring properties | 映射时忽略 POCO 上的某些属性
-
Multi fields:多字段,见此博文:NEST 教程系列 4-7 映射:Multi fields | 多字段映射