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 |
Elasticsearch NEST使用指南:映射和分析的更多相关文章
- ElasticSearch 5学习(9)——映射和分析(string类型废弃)
在ElasticSearch中,存入文档的内容类似于传统数据每个字段一样,都会有一个指定的属性,为了能够把日期字段处理成日期,把数字字段处理成数字,把字符串字段处理成字符串值,Elasticsearc ...
- ElasticSearch权威指南学习(映射和分析)
概念 映射(mapping)机制用于进行字段类型确认,将每个字段匹配为一种确定的数据类型(string, number, booleans, date等).+ 分析(analysis)机制用于进行全文 ...
- elasticsearch(6) 映射和分析
类似关系型数据库中每个字段都有对应的数据类型,例如nvarchar.int.date等等,elasticsearch也会将文档中的字段映射成对应的数据类型,这一映射可以使ES自动生成的,也是可以由我们 ...
- Elasticsearch入坑指南之RESTful API
Elasticsearch入坑指南之RESTful API Tags:Elasticsearch ES为开发者提供了非常丰富的基于Http协议的Rest API,通过简单的Rest请求,就可以实现非常 ...
- ElasticSearch入坑指南之概述及安装
---恢复内容开始--- ElasticSearch入坑指南之概述及安装 了解ElasticSearch ElasticSearch(简称ES)基于Lucene的分布式全文检索引擎.使用ES可以实现近 ...
- ElasticSearch NEST笔记
ElasticSearch NEST笔记 1. 什么是ElasticSearch? ElasticSearch is a powerful open source search and analyti ...
- 使用ELK(Elasticsearch + Logstash + Kibana) 搭建日志集中分析平台实践--转载
原文地址:https://wsgzao.github.io/post/elk/ 另外可以参考:https://www.digitalocean.com/community/tutorials/how- ...
- elasticsearch中的mapping映射配置与查询典型案例
elasticsearch中的mapping映射配置与查询典型案例 elasticsearch中的mapping映射配置示例比如要搭建个中文新闻信息的搜索引擎,新闻有"标题".&q ...
- ELK(ElasticSearch+Logstash+ Kibana)搭建实时日志分析平台
一.简介 ELK 由三部分组成elasticsearch.logstash.kibana,elasticsearch是一个近似实时的搜索平台,它让你以前所未有的速度处理大数据成为可能. Elastic ...
随机推荐
- Linux实战教学笔记24:SSH连接原理及ssh-key
目录 第二十四节 SSH连接原理及ssh-key讲解 第1章 SSH服务 1.1 ssh介绍 1.2 知识小结 第2章 ssh结构 2.1 SSH加密技术 第3章 ssh服务认证类型 3.1 基于口令 ...
- VUE+WebPack游戏设计:欲望都市城市图层的设计
- 混合开发之iOS快速集成DSBridge
DSBridge-IOS github:https://github.com/wendux/DSBridge-IOS 使用 Native 实现API 代理类 //JsApiTest.m @implem ...
- Opencv 亚像素级别角点检测
Size winSize = Size(5,5); Size zerozone = Size(-1,-1); TermCriteria tc = TermCriteria(TermCriteria:: ...
- spring4-2-bean配置-6-使用外部属性文件
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAk0AAAFGCAIAAAD4tzxRAAAgAElEQVR4nO2d27HsOm+tOxWn4CeXAm ...
- cacti监控mssql 2005运行资源情况
概述:SQL Server2000\2005\2008本身不支持snmp,使用cacti监控mssql,必须通过php连接mssql来获取SQL 2005性能计算器的值. 操作步骤: 1.php连接m ...
- nyoj746 整数划分
nyoj746 http://acm.nyist.net/JudgeOnline/problem.php?pid=746 一道区间dp的题目: 设:a[i][j]为那一串数字中从第i位到第j位的数是多 ...
- Source Insight: has been changed outside of Source Insight
has been changed outside of Source Insight 2018年04月26日 09:41:01 linux_c_coding_man 阅读数:247 摘自:https: ...
- 关于HBase的memstoreFlushSize。
memstoreFlushSize是什么呢? memstoreFlushSize为HRegion上设定的一个阈值,当MemStore的大小超过这个阈值时,将会发起flush请求. 它的计算首先是由Ta ...
- html传参数 js工具类
var QueryUtils = { GetQueryString: function (name) { var reg = new RegExp("(^|&)" + na ...