Mapping2.0
一、概念
ES中的mapping类似关系型数据库中的表结构。
mapping中包含一些属性,如字段名称、类型、字段使用的分词器、是否评分、是否创建索引等属性
二、查看mapping
GET /product/_mapping
三、ES数据类型
常见类型
1、数字类型:long、integer、short、byte、double、float等
2、Keywords:该类型只能通过精确值搜索,不能被分词。Id应该用keyword
3、Dates(时间类型):包括date和date nanos
4、alias:为现有字段定义别名
5、text:文本类型。默认会创建倒排索引,做文本检索。
对象关系类型
1、object:用于单个JSON对象
2、nested:用于JSON对象数组
结构化类型
1、geo-point:纬度/经度积分
2、geo-shape:用于多边形等复杂形状
3、point:笛卡尔坐标点
4、shape:笛卡尔任意几何图形
特殊类型
1、IP地址:ip用于IPv4和IPv6地址
2、completion:在浏览器搜索时提供建议
四、映射类型
1、自动映射
整数:long
浮点数:float
true||false:boolean
日期:date
数组:取决于数组的第一个有效值
对象:object
字符串:如果不是数字和日期类型,那会被映射为text和keyword两个类型
2、手动映射
1 手工创建mapping 2 #手工创建mapping 3 PUT /product2 4 { 5 "mappings":{ 6 "properties": { 7 "date":{ 8 "type":"text" 9 }, 10 "name":{ 11 "type":"text" 12 } 13 } 14 } 15 }
五、映射参数
1、index:是否对当前字段创建倒排索引,默认为true,如果不创建倒排索引,该字段不会通过索引被搜索到,但是仍会在source元数据中展示
2、analyzer:指定分析器(分词器等)
3、doc_value:正排索引,为了提高排序和聚合效率,默认true,如果确定不需要对字段进行排序或聚合,也不需要通过脚本访问字段值,则可以禁用doc值来节约磁盘
4、search_analyzer:设置单独的查询时分词器
六、keyword
1 #给city创建一个keyword 2 PUT fields_test 3 { 4 "mappings":{ 5 "properties": { 6 "city":{ 7 "type": "text", 8 "fields": { 9 "raw":{ 10 "type":"keyword" 11 } 12 } 13 } 14 } 15 } 16 } 17 PUT fields_test/_doc/1 18 { 19 "city":"New York" 20 } 21 PUT fields_test/_doc/1 22 { 23 "city":"York" 24 } 25 GET fields_test/_search 26 { 27 "query": { 28 "match": { 29 "city": "york" 30 } 31 }, 32 "sort": { 33 "city.raw":"asc" 34 }, 35 "aggs":{ 36 "city":{ 37 "terms":{ 38 "field": "city.raw" 39 } 40 } 41 } 42 }
作者:http://cnblogs.com/lyc-code/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权力。
原文地址:https://www.cnblogs.com/lyc-code/p/15215012.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Flutter 初学者必读的高级布局规则
- Docker Swarm群集配置实战——第二战
- Python 基础(五):序列
- OpenCV黑魔法之隐身衣 | 附源码
- SQL 统计用户留存
- 常用的前端JQ插件
- 面向对象编程(设计模式)需要遵循的 6 个基本原则
- SAP CRM Application Extension Tool的Custom Behavior
- Python 基础(四):字符串
- 使用Faster-RCNN进行指定GPU训练(续)
- SAP CDS view自学教程之十:SAP CDS view扩展性(Extensibility)实现原理
- 使用Faster-RCNN进行指定GPU训练
- Faster RCNN 环境配置
- SAP cross distribution chain status在Fiori应用中的draft handling
- 构建复杂应用的神器,FBroadcast