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


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM