Elasticsearch NEST使用指南:映射和分析
阿新 • • 發佈:2017-12-13
包含 white time .net net eat not .html 映射
NEST提供了多種映射方法,這裏介紹下通過Attribute自定義映射。
一、簡單實現
1、定義業務需要的POCO,並指定需要的Attribute
[ElasticsearchType(Name = "student")] public class Student { [Nest.String(Index = FieldIndexOption.NotAnalyzed)] public string Id { get; set; } [Nest.String(Analyzer = "standard")] public string Name { get; set; } [Nest.String(Analyzer = "standard")] public string Description { get; set; } public DateTime DateTime { get; set; } }
2、接著我們通過.AutoMap()來實現映射
var descriptor = new CreateIndexDescriptor("db_student") .Settings(s => s.NumberOfShards(5).NumberOfReplicas(1)) .Mappings(ms => ms .Map<Student>(m => m.AutoMap()) ); client.CreateIndex(descriptor);
註意:通過.Properties()可以重寫通過Attribute定義的映射
二、Attribute介紹
1、StringAttribute
屬性名 | 值類型 | 描述 |
---|---|---|
Analyzer | string | 分析器名稱,值包含standard、simple、whitespace、stop、keyward、pattern、language、snowball、custom等,查看分析器更多信息請點擊Elasticsearch Analyzers |
Boost | double | 加權值,值越大得分越高 |
NullValue | string | 插入文檔時,如果數據為NULL時的默認值 |
Index | FieldIndexOption | 是否使用分析器,默認使用FieldIndexOption.Analyzed,禁止使用分析器FieldIndexOption.NotAnalyzed |
2、NumberAttribute
屬性名 | 值類型 | 描述 |
---|---|---|
type | NumberType | 構造函數參數,指定當前屬性的類型,NumberType.Default、Float、Double、Integer、Long、Short、Byte |
Boost | double | 加權值,值越大得分越高 |
NullValue | double | 插入文檔時,如果數據為NULL時的默認值 |
3、BooleanAttribute
屬性名 | 值類型 | 描述 |
---|---|---|
Boost | double | 加權值,值越大得分越高 |
NullValue | double | 插入文檔時,如果數據為NULL時的默認值 |
4、DateAttribute
屬性名 | 值類型 | 描述 |
---|---|---|
Boost | double | 加權值,值越大得分越高 |
NullValue | string | 插入文檔時,如果數據為NULL時的默認值 |
Format | string |
5、ObjectAttribute
屬性名 | 值類型 | 描述 |
---|---|---|
type | string/Type | 構造函數參數,指定當前屬性的類型T |
Dynamic | DynamicMapping |
Elasticsearch NEST使用指南:映射和分析