1. 程式人生 > >Elasticsearch NEST使用指南:映射和分析

Elasticsearch NEST使用指南:映射和分析

包含 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使用指南:映射和分析