`
m635674608
  • 浏览: 5043390 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

ElasticSearch的Mapping之字段类型

 
阅读更多

es支持大多数java里面的数据类型: 

(一)核心数据类型: 

(1)string: 默认会被分词,一个完整示例如下 

Java代码  收藏代码
  1. "status": {  
  2.          "type":  "string"//字符串类型  
  3.          "index""analyzed"//分词,不分词是:not_analyzed ,设置成no,字段将不会被索引  
  4.          "analyzer":"ik"//指定分词器  
  5.          "boost":1.23//字段级别的分数加权  
  6.           "doc_values":false//对not_analyzed字段,默认都是开启,分词字段不能使用,对排序和聚合能提升较大性能,节约内存  
  7.            "fielddata":{"format":"disabled"}//针对分词字段,参与排序或聚合时能提高性能,不分词字段统一建议使用doc_value  
  8.            "fields":{"raw":{"type":"string","index":"not_analyzed"}} //可以对一个字段提供多种索引模式,同一个字段的值,一个分词,一个不分词  
  9.            "ignore_above":100 //超过100个字符的文本,将会被忽略,不被索引  
  10.            "include_in_all":ture//设置是否此字段包含在_all字段中,默认是true,除非index设置成no选项  
  11.            "index_options":"docs"//4个可选参数docs(索引文档号) ,freqs(文档号+词频),positions(文档号+词频+位置,通常用来距离查询),offsets(文档号+词频+位置+偏移量,通常被使用在高亮字段)分词字段默认是position,其他的默认是docs  
  12.            "norms":{"enable":true,"loading":"lazy"}//分词字段默认配置,不分词字段:默认{"enable":false},存储长度因子和索引时boost,建议对需要参与评分字段使用 ,会额外增加内存消耗量  
  13.             "null_value":"NULL"//设置一些缺失字段的初始化值,只有string可以使用,分词字段的null值也会被分词  
  14.             "position_increament_gap":0//影响距离查询或近似查询,可以设置在多值字段的数据上火分词字段上,查询时可指定slop间隔,默认值是100  
  15.              "store":false//是否单独设置此字段的是否存储而从_source字段中分离,默认是false,只能搜索,不能获取值  
  16.               "search_analyzer":"ik"//设置搜索时的分词器,默认跟ananlyzer是一致的,比如index时用standard+ngram,搜索时用standard用来完成自动提示功能  
  17.                "similarity":"BM25"//默认是TF/IDF算法,指定一个字段评分策略,仅仅对字符串型和分词类型有效  
  18.                "term_vector":"no"//默认不存储向量信息,支持参数yes(term存储),with_positions(term+位置),with_offsets(term+偏移量),with_positions_offsets(term+位置+偏移量) 对快速高亮fast vector highlighter能提升性能,但开启又会加大索引体积,不适合大数据量用  
  19.        }  




(2)数字类型主要如下几种: 
long:64位存储 
integer:32位存储 
short:16位存储 
byte:8位存储 
double:64位双精度存储 
float:32位单精度存储 

支持参数: 

Java代码  收藏代码
  1. coerce:true/false 如果数据不是干净的,将自动会将字符串转成合适的数字类型,字符串会被强转成数字,浮点型会被转成整形,经纬度会被转换为标准类型  
  2. boost:索引时加权因子  
  3. doc_value:是否开启doc_value  
  4. ignore_malformed:false(错误的数字类型会报异常)true(将会忽略)  
  5. include_in_all:是否包含在_all字段中  
  6. index:not_analyzed默认不分词  
  7. null_value:默认替代的数字值  
  8. precision_step:16 额外存储对应的term,用来加快数值类型在执行范围查询时的性能,索引体积相对变大  
  9. store:是否存储具体的值  



(3)复合类型 

数组类型:没有明显的字段类型设置,任何一个字段的值,都可以被添加0个到多个,要求,他们的类型必须一致: 
对象类型:存储类似json具有层级的数据 
嵌套类型:支持数组类型的对象Aarray[Object],可层层嵌套 

(4)地理类型 

geo-point类型: 支持经纬度存储和距离范围检索 
geo-shape类型:支持任意图形范围的检索,例如矩形和平面多边形 

(5)专用类型 
ipv4类型:用来存储IP地址,es内部会转换成long存储 
completion类型:使用fst有限状态机来提供suggest前缀查询功能 
token_count类型:提供token级别的计数功能 
mapper-murmur3类型:安装sudo bin/plugin install mapper-size插件,可支持_size统计_source数据的大小 
附件类型:需要https://github.com/elastic/elasticsearch-mapper-attachments开源es插件支持,可存储office,html等类型 

(6)多值字段: 
一个字段的值,可以通过多种分词器存储,使用fields参数,支持大多数es数据类型 


(二)Mapping 参数列表,上面文章出现过的不再解释: 

序号 名称 解释
1 copy_to 与solr里面的copy_field字段功能一样,支持拷贝某个字段的值到集中的一个字段里面
2 properties mapping type,对象字段和嵌套字段可以包含子字段,这些属性可以被添加进去,例子如下




 


官网文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-types.html#_multi_fields_2 

 

http://qindongliang.iteye.com/blog/2259541

分享到:
评论

相关推荐

    一款基于Java注解的elasticsearch mapping生成工具,支持ES 5.2.0所有可选参数.zip

    而标题中提到的"一款基于Java注解的elasticsearch mapping生成工具",正是针对这一需求,为开发者提供了一种简洁且高效的方式来创建和管理ES的映射。 **Java注解与Elasticsearch Mapping** Java注解是一种元数据,...

    arcgis-elasticSearch-es-矢量数据导入插件-数据建模-mapping-indexsetting-字段映射

    arcgis elasticSearch es 矢量数据导入插件 数据建模 mapping indexsetting 字段映射 索引建模支持geoshape、shape,text索引支持keyword/ngram/edgeNgram/ikSmart,快速导入,兼容multipolygon,带洞,多面,使用时...

    Elasticsearch(015):es常见的字段映射类型之数字类型(numeric)

    文章目录简介示例注意事项 ...#给example索引添加字段映射,默认docs类型 PUT example/docs/_mapping { properties: { id:{ type:long }, name:{ type:keyword }, age:{ type:integer },

    arcgis-elasticSearch-es-矢量数据导入插件-数据建模-字段映射-mapping-indexsetting

    arcgis elasticSearch es 矢量数据导入插件 数据建模 mapping indexsetting 字段映射 索引建模支持geoshape、shape,text索引支持keyword/ngram/edgeNgram/ikSmart,快速导入,兼容multipolygon,带洞,多面,使用时...

    es-mapping-generator:基于自定义注释解根据Java实体模型生成elasticsearch的映射配置

    ElasticSearch映射生成器该工具允许在创建索引时为索引生成映射或设置。 使用注释描述定义的映射字段安装二进制文件部署在Maven Central上,您可以将工件导入到您的项目中: < dependency> < groupId>...

    ElasticSearch Mapping

    一、Mapping介绍 1)什么是Mapping ? 备注:7.0版本后ES,是通过自动识别字段...6) 能否修改Mapping字段的类型 二、Demo 7)常规Mapping添加删除 #写入文档,查看 Mapping PUT mapping_test/_doc/1 { firstName:

    elasticsearch-8.11.3-linux-x86-64.tar.gz.zip

    7. **映射(Mapping)**:映射是Elasticsearch中的字段配置,定义了字段的数据类型、分析器等,影响着数据的索引和搜索行为。 8. **搜索性能**:Elasticsearch利用倒排索引技术,提供快速的全文检索。同时,通过...

    基于.netcore搜索封装ElasticSearch.zip

    Elasticsearch.NET是Elastic官方提供的.NET低级别客户端,而Nest则是其高级别、类型安全的客户端,提供了一种更接近C#的对象模型来操作Elasticsearch。通过这两个库,开发者可以更加便捷地在.NET Core应用中使用...

    elasticsearch-jieba-plugin 8.8.2.zip

    `elasticsearch-jieba-plugin`正是将jieba分词库与Elasticsearch进行了深度融合,使得ES在处理中文文本时能展现出卓越的性能。 安装此插件的过程简单明了。首先,下载`elasticsearch-jieba-plugin 8.8.2.zip`压缩包...

    elastic search 7.6.2 查询

    动态映射是指在文档写入 Elasticsearch 时,会根据文档字段自动识别类型,而静态映射是指事先定义好映射,包含文档的各个字段及其类型等。 三、文档 文档是用来搜索的数据,其中的每一条数据就是一个文档。 四、...

    从SQLServer收集事件并将其保存到Elasticsearch以便进行进一步分析

    为了有效地分析SQL Server事件,我们需要设计合适的映射(mapping),定义每个字段的数据类型和分析方式。例如,时间戳字段应被设置为日期类型,错误消息可能需要进行全文索引以便搜索。 一旦数据成功导入Elastic...

    elasticSearch的操作demo

    最后,`es`包可能是Elasticsearch相关的操作接口或抽象类,它们定义了与Elasticsearch交互的方法,如添加、更新、删除文档,以及查询等。例如: ```java public interface ElasticsearchRepository { void save...

    Elasticsearch 8.1.2 Linux版本

    4. **类型(Type)**:在Elasticsearch 7.x及以后的版本中被弃用,之前的版本中每个索引可以包含多个类型。 5. **分片(Shard)**:为了分散存储和提高查询效率,Elasticsearch将索引分成多个分片。分片可以在不同节点...

    elasticsearch-7.14.0+分词器+head插件一键下载

    2. 数据索引:创建合适的索引模板,定义映射(Mapping)以指定字段类型和分析器。 3. 分词器优化:选择适合的分词器,并可能需要自定义分词规则以满足特定需求。 4. 性能调优:监控集群性能,调整索引刷新频率、副本...

    ElasticSearch添加索引.docx

    - 映射是Elasticsearch中定义字段类型和属性的地方,它决定了数据如何被处理和搜索。 - `"dynamic": false`:这个设置表示不允许动态映射,即索引中的字段类型必须在映射中预先定义,防止意外的数据类型引入问题。...

    springboot整合es-springboot-elasticsearch.zip

    SpringBoot整合Elasticsearch是现代Java开发中常见的一项任务,因为SpringBoot的便捷性和Elasticsearch的高效搜索能力,使得这种结合在数据检索、分析和日志存储等领域广泛应用。本项目"springboot-elasticsearch-...

    Elasticsearch2.4.4免安装下载

    4. **动态映射**: 当新类型的数据被索引时,Elasticsearch 可以自动创建映射(mapping),定义字段的数据类型,也可以手动配置。 5. **实时分析**: 数据一旦被索引,即可立即用于搜索和分析,无需等待批处理过程。 ...

    Elasticsearch java工具类

    在Elasticsearch中,mapping是定义索引中字段的数据类型和属性的过程,它影响着数据如何被索引和搜索。通过自定义注解,开发者可以在实体类上直接声明字段的mapping,避免了手动编写JSON映射文件的繁琐工作。这使得...

    ElasticSearch入门到精通(基于ELK技术栈ElasticSearch7.8.版本).rar

    - **类型(Type)**:在 Elasticsearch 7.x 及更高版本中已被弃用,但早期版本中,索引内的文档可以属于特定类型。 - **映射(Mapping)**:定义字段的数据类型,有助于优化查询性能。 **2. Elasticsearch 的安装与...

    Elasticsearch5.6版本的Jar包

    6. **映射(Mapping)**:映射是Elasticsearch中定义字段数据类型的配置,它决定了数据如何被索引和搜索。5.6版本支持自动映射,但也可以自定义映射以满足特定需求。 7. **近实时处理(NRT)**:Elasticsearch具有...

Global site tag (gtag.js) - Google Analytics