• ElasticSearch- Mapping


    Mapping映射

    概念:定义文档及其包含的字段的存储和索引方式的过程
    两种方式:dynamic mapping【动态映射/自动映射】;explicit mapping【静态映射/手工映射/显示映射】

    查看mapping
    • GET /index/_mapping
    es数据类型
    • 数字类型:long、integer、short、byte、double、float…
    • keywords:适用于索引结构化字段,可以用于过滤、排序、聚合。只能通过精确值搜索到
    • date
    • binary
    • range
    • text:当一个字段是要被全文搜索的,如email内容、产品描述,应使用text类型。设置text类型后,字段内容会被分析,生成倒排索引以前,字符串会被分析器分析称一个个词项

    除了整数、浮点数、true/false、日期、数组、对象、字符串之外,其他类型都必须显示映射【手工指定】,其他类型es无法自动识别,fields的mapping只能创建,无法修改

    PUT /product
    {
    	"mappings":{
    		"properties":{
    			"field":{
    				"mapping_parameter":"parameter_value"
    				}
    			}
    		}
    }
    # field:字段名;mapping_parameter:参数【type、分词器等】
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    映射参数
    • index:是否创建倒排索引,默认true
    • analyzer:分词器,默认对索引和查询都有效
    • search_analyzer:查询分词器
    • normalizer:用于解析前(索引/查询)的标准化配置
    • boost:设置字段权重,两种方式:1定义mappings时使用,指定字段类型时使用;2查询时使用【开发中建议使用后者,前者如果不重新索引文档,权重无法修改】
    • coerce:清除脏数据,强制类型转换,默认true
    • copy_to:将多个字段的值复制到同一字段中
    • doc_values:为加快排序、聚合而生,默认开启,如果确定某个字段不需要排序/聚合,则可以关闭节省磁盘空间,大部分字段在索引时都会生成doc_values,除了text。
    • fielddata:text在查询时会生成一个fielddata数据结构,fielddata默认关闭
    • fields:给field创建多字段,用于不同目的(全文检索/聚合分析排序)
    • store:设置字段是否仅查询
  • 相关阅读:
    Prometheus中关键设计
    Android init.rc启动shell脚本
    Linux内核顶层Makefile的make xxx_defconfig过程分析二
    数据分析方法:RFM模型
    oracle官网下载早期jdk版本
    学习如何编码
    通过 Canal 将 MySQL 数据实时同步到 Easysearch
    【线上Java项目部署Bug记录】天翼云80端口不能使用,即使暴露了也不行!!!
    【黑马程序员】mysql进阶篇笔记
    从零开始入门单片机(一):必会背景知识总结
  • 原文地址:https://blog.csdn.net/Cristy_Chen/article/details/125980043