Elasticsearch基础
01、Elasticsearch 教程: 基础教程
02、Elasticsearch 教程: 简介
03、Elasticsearch 教程: 安装前准备工作
04、Elasticsearch 教程: 安装 ( Windows )
05、Elasticsearch 教程: 安装 ( Unix )
06、Elasticsearch 教程: 术语
07、Elasticsearch 教程: RESTful API
08、Elasticsearch 教程: 初体验 – 分词
09、Elasticsearch 教程: 中文分词 – 结巴分词
10、Elasticsearch 教程: 准备数据
11、Elasticsearch 教程: 填充数据
12、Elasticsearch 教程: API 约定
13、Elasticsearch 教程: 文档 API
14、Elasticsearch 教程: 搜索 API
15、Elasticsearch 教程: 聚合计算
16、Elasticsearch 教程: 索引 API
17、Elasticsearch 教程: 集群管理 API
18、Elasticsearch 教程: 查询描述语言
19、Elasticsearch 教程: 映射 ( Mapping )
20、Elasticsearch 教程: 分析 ( Analysis )
21、Elasticsearch 教程: 模块 ( Modules )
22、Elasticsearch 教程: 测试
23、Elasticsearch 教程: 版本升级
24、Elasticsearch 教程: 总结
本文档使用 MrDoc 发布
-
+
首页
19、Elasticsearch 教程: 映射 ( Mapping )
索引中每个文档都有一个类型( type ) 。 每个类型拥有自己的映射 ( mapping )或者模式定义 (schema definition) 一个映射定义了字段类型,每个字段的数据类型,以及字段被 Elasticsearh 处理的方式。映射还用于设置关联到类型上的元数据 所以,从某些方面说,映射是存储在索引中的文档的大纲,或者说相当于数据库中的某个表的表结构 ### **范例** 例如下面这个请求,用于定义银行账户详情 ```python POST http://localhost:9200/bankaccountdetails?pretty ``` 请求正文 ```python { "mappings":{ "report":{ "properties":{ "name":{ "type":"text"}, "date":{ "type":"date"}, "balance":{ "type":"double"}, "liability":{ "type":"double"} } } ``` 返回响应如下 ```python { "acknowledged" : true, "shards_acknowledged" : true, "index" : "bankaccountdetails" ``` ### **字段类型** ------------ Elasticsearch 为文档中的字段提供了大量的数据类型支持。以下列出的数据类型都可以用来定义文档的字段类型 1、 基础数据类型; Elasticsearch 几乎支持所有系统的基本数据类型 1、 整型(integer); 2、 长整型(longint); 3、 双精度型(double); 4、 短整型(shortint); 5、 字节型(byte); 6、 浮点型(float); 7、 字符串型(string); 8、 日期类型(date); 9、 布尔类型(boolean); 10、 二进制类型(binary); 2、 复合数据类型; 复合数据类型一般由一种或多种数据类型组合而成,比如数据、JSON 对象和嵌套数据类型。 下面的请求的请求正文和响应正文就是一个嵌套数据类型的 ```python POST http://localhost:9200/tabletennis/team/1?pretty ``` 请求正文 ```python { "group" : "players", "user" : [ { "first" : "dave", "last" : "jones" }, { "first" : "kevin", "last" : "morris" } ] ``` 响应正文 ```python { "_index" : "tabletennis", "_type" : "team", "_id" : "1", "_version" : 1, "result" : "created", "_shards" : { "total" : 2, "successful" : 1, "failed" : 0 }, "_seq_no" : 0, "_primary_term" : 1 ``` 3、 Geo数据类型; Geo数据类型用于定义一个地理位置信息 例如 | 数据类型 | 说明 | | --- | --- | | geo_point | 用于定义经度和纬度 | | geo_shape | 用于定义矩形等不同的几何形状 | 4、 特殊的数据类型; 特殊的字段类型是指那些由特殊用途的数据类型 例如,`IPv4("ip")` 接受一个 IP 4 的地址 例如,自动完成数据类型用于支持自动完成或输入建议 例如,`token_count` 用于统计字符串中的令牌数量 ### **类型映射** ------------ 每个索引都会映射到一个或多个类型,这样就可以在逻辑上将索引的文档细分成一个个小的组成部分 如果传递的参数不同,那么映射类型也可以彼此不同 **1、 元字段(Meta-Fields);** 这些字段提供了映射和与该字段有关的其它对象的信息 例如 1、 `_index`; 2、 `_type`; 3、 `_id`; 4、 `_source`; **2、 普通字段(Fields);** 不同的映射可以含有不同数量的字段,且字段的类型也可以各不相同 ### **动态映射** ------------ Elasticsearch 提供了一个用户友好的自动创建映射机制 **用户可以将数据直接发布到任何未预先定义的映射中,Elasticsearch 将自动创建映射** 这种机制,称为动态映射 范例 例如下面的请求 ```python POST http://localhost:9200/accountdetails/tansferreport ``` 请求正文 ```python { "from_acc":"7056443341", "to_acc":"7032460534", "date":"6/28/2019", "amount":10000 ``` 响应内容 ```python { "_index" : "accountdetails", "_type" : "tansferreport", "_id" : "6EnaRmQBwP8hfMtC_uoj", "_version" : 1, "result" : "created", "_shards" : { "total" : 2, "successful" : 1, "failed" : 0 }, "_seq_no" : 0, "_primary_term" : 1 ``` ### **映射参数** ------------ 映射参数定义了映射的结构、字段的信息、存储的信息以及搜索时将如何分析映射的数据 下面列出了 Elasticsearch 支持的所有映射参数 1、 analyzer; 2、 boost; 3、 coerce; 4、 copy_to; 5、 doc_values; 6、 dynamic; 7、 enabled; 8、 fielddata; 9、 geohash; 10、 geohash_precision; 11、 geohash_prefix; 12、 format; 13、 ignore_above; 14、 ignore_malformed; 15、 include_in_all; 16、 index_options; 17、 lat_lon; 18、 index; 19、 fields; 20、 norms; 21、 null_value; 22、 position_increment_gap; 23、 properties; 24、 search_analyzer; 25、 similarity; 26、 store; 27、 term_vector;
李智
2025年3月17日 13:24
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码