问答1 问答5 问答50 问答500 问答1000
网友互助专业问答平台

elasticsearch映射的数据类型有哪些

提问网友 发布时间:2022-04-20 16:00
声明:本网页内容为用户发布,旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:1656858193@qq.com
1个回答
热心网友 回答时间:2022-04-10 21:31
es支持大多数java里面的数据类型:

(一)核心数据类型:

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

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

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

支持参数:

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

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

相关推荐
  • Elasticsearch实现复合查询高亮结果功能

    Elasticsearch实现复合查询高亮结果功能

    Elasticsearch实现复合查询高亮结果功能:一.Es的配置 实现es的全文检索功能的第一步,首先从与es进行连接开始,这里我使用的是es的5.x java api语法. public TransportClient esClient() throws UnknownHostException{ Settings settings = Settings.build
    查看详情
苹果12promax怎样不收到未知发件人短信? 手机存储芯片拆下来怎么读取并转移到另一个存储芯... 怎样读取手机存储芯片内容 拆出来的手机主板怎么看字库内存多大? 三星手机芯片内存怎么认识? 怎样识别手机内存卡的好坏? 手机芯片测试问题 怎么看手机内存芯片频率 怎样查手机内存型号 怎样分辨手机内存卡的好坏。。。 vivo手机怎么看手机内存? 如何判官内存芯片是不是坏了?有什么简单的方法吗?... 如何查看手机内存卡的主控芯片的型号?如何检测它... 怎么辨别iPhone6的存储芯片是不是TLC的 为什么我微信不能抢红包也不能发红包 怎样查看手机内存是不是ufs2.1? 微信不能发红包只能抢红包是为什么? 手机内存卡芯片怎么检测,MicroSD卡,金士顿16G的... 微信零钱里有钱 为什么不能发红包或转账呢?只能选... 为什么微信可以收红包,但不能发红包? es搜索中怎么匹配是否包含在一个数组里面啊? es怎么比较数组中字 Opengl ES的和Opengl中的glDrawElements参数有什么... java中String数组问题 c数组问题 3[doses] 如何通过elasticsearch数组元素来搜索 es国服卡池顺序2022 小号赛马用什么调演奏 汇编语言bp寄存器和es寄存器有何用? 如何消除男生舞蹈学习的心理障碍 详细�0&#x... 视频文件解密后变成mem.es的格式了,怎么恢复??? 中国现代器乐演奏艺术的两条轨道是怎么发展的 es中字段如何匹配空字符串 浦东小学 音乐教师入编考试笔试内容是什么??急呀! 编写JAVA类,实现打印数组中出现次数最多元素 上海小学音乐老师考试面试内容 ios nsuserdefaults怎么覆盖 关于单片机 数组使用 Android opengl es 2.0怎么学习?用这个做游戏怎么... Win32汇编 结构体数组的使用
Top