这是我参与11月更文挑战的第20天,活动详情查看:2021最后一次更文挑战
text
- 会被分词,然后构建倒排。
- 不用于排序,很少用于聚合。
keyword
- 不会被分词
- 用于过滤。
Numeric datatypes
- 数值类型:long,integer,short,byte,double,float,half_float,scaled_float 表示数据范围不同。
- 对于浮点数,尽量使用scaled_float。
scale_float
- 通过设置缩放因子来存放数值。比如12.12 设置缩放因子为100 那么底层存的数据其实是1212。压缩整数比压缩浮点数更加节省存储空间。
date
- 可以put的时候存入时间格式字符串,时间戳都行。内部存储的是long型的毫秒数。
boolean
- 存入true和false
binary
-
存放base64编码的字符串,默认不存储也不搜索。
-
但是可以在_source里面获取。只是为了保存数据的。
array
- es的数组,一个字段里面的值必须是同一个类型。
object
- 存储对象
- 对象在构建索引的时候会被压平: field:{name:"xx"} ==> field.name:"xx"
nested
-
object的一个特例,针对object解决对象数组的问题:field: [{name:"xx1"},{name:"xx2"}] ==> field.name:["xx1","xx2"] 这样压平后,对象失去了联系。
-
nested类型数组对象里面的每一个元素都会被当做一个doc隐藏的去建立索引。索引一个index包含了100个nested的文档,就相当于索引了101个文档。(每个nested都是单独一个文档索引)为了防止过度定义该类型字段,限定了该字段个数不超过50个。
geo point
- 传入精度和纬度,坐标点
geo shape
- 可以存入一块区域。GeoJSON来表示一个范围
ip
- 存ip地址
range
- integer_range float_range .... date_range等。
token_count
- 表示分词后词项的个数。
映射字段
- 上面字段的附加属性。
analyzer
- 指定分词器
search_analyzer
- 指定搜索的分词器,默认使用analyzer指定的。
normalizer
- 解析前的标准化,如在搜索和索引前将字段所有字符转化为小写。
boost
- 设置针对某个字段查询的权重。可以设置在索引层和搜索层,推荐搜索层设置权重。
coerce
- 整理脏数据,将非法数据转合法。 比如 “3” 传 int的3
copy_to
- 自定义 _all 字段,将多个字段的值复制到一个超级字段上。
doc_values
- 加速排序和聚合操作,默认开启的。对于确定不会排序和聚合的字段可以关闭来节省空间。
dynamic
- 指定动态映射时候出现未出现的字段时候的执行的策略:
- true:自动添加字段
- false:忽略新字段
- strict:严格模式,发现新字段就抛出异常。
enabled
- 针对只需要被存储,不需要查询聚合操作的字段。enabled为false的字段会被自动跳过构建索引和存储。就是忽略doc这个字段的意思。但是_source可以取到这个字段。
- 比如es需要保存doc信息,但是doc里面的有些字段我们并不需要放入index,那么可以设置enabled为false。这个和object类型可以实现的功能差不多。
fielddata
- 大部分字段在索引时候会生成doc value。text字段除外。 这个需要细看。
- 很吃内存。
format
- 设置可以支持的格式,比如时间的格式
ignore_above
- 只用于keyword类型
- 指定字段类型字符串最大的长度,超过长度会被忽略。
ignore_malformed
- 忽略异常,异常数据不索引。
include_in_all
- 指定字段是否在_all 字段中。
index
- 指定字段是否索引,不索引则不支持搜索。
index_options
- 设置字段哪些信息存储到倒排索引中去(文档编号,词项频率,词项位置,词项开始和结束字符位置这些信息)
fields
- 让同一字段有多种不同的索引方式。
- 一个字段 既按照text索引(用于全文搜索),又按照keyword(聚合和排序,es不可以用text来排序)索引。
norms
-
标准化文档,以便查询时计算文档的相关性,对评分有用。
-
但是消耗磁盘空间,不建议开启。
null_value
- 值为null的字段,不可以索引也 不可以搜索。null_value 可以让null的字段可以显示索引和搜索。
position_increment_gap
properties
similarity
- 指定文档评分模型
store
- 文档是否存储。即使不存储也会在_source中存储。
term_vector
- 词向量。
元字段
- 用于描述文档本身的字段。就是我们search后结果中那些不是我们put进去的数据。
_index
- 表明该doc是属于哪个index的
_source
-
存储文档的原始值,默认开启。可以enable进行关闭。
-
但是一般不要去关闭,因为很多地方需要用:update reindex等都需要使用_source的值。
_size
- 统计文档大小,默认不需要。
_all
-
将其他的字段拼接一起形成一个超级字段。所有的字段按照空格分开。
-
一般用途,我们完全不知道对哪个字段(或者字段范围)进行搜索的时候,使用all全局搜。
_field_names
- 存储文档非空字段名,常用语exists查询。
_parent
- 指定同一个索引中,文档的父子关系。
_rounting
- 依据指定的公式,将文档分配到指定的分片上。