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

属性名值类型描述
Analyzerstring分析器名称,值包含standard、simple、whitespace、stop、keyward、pattern、language、snowball、custom等,查看分析器更多信息请点击Elasticsearch Analyzers
Boostdouble加权值,值越大得分越高
NullValuestring插入文档时,如果数据为NULL时的默认值
IndexFieldIndexOption是否使用分析器,默认使用FieldIndexOption.Analyzed,禁止使用分析器FieldIndexOption.NotAnalyzed

2、NumberAttribute

属性名值类型描述
typeNumberType构造函数参数,指定当前属性的类型,NumberType.Default、Float、Double、Integer、Long、Short、Byte
Boostdouble加权值,值越大得分越高
NullValuedouble插入文档时,如果数据为NULL时的默认值

3、BooleanAttribute

属性名值类型描述
Boostdouble加权值,值越大得分越高
NullValuedouble插入文档时,如果数据为NULL时的默认值

4、DateAttribute

属性名值类型描述
Boostdouble加权值,值越大得分越高
NullValuestring插入文档时,如果数据为NULL时的默认值
Formatstring 

5、ObjectAttribute

属性名值类型描述
typestring/Type构造函数参数,指定当前属性的类型T
DynamicDynamicMapping

转载于:https://www.cnblogs.com/a-du/p/8031873.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值