模式映射用于定义索引结构。在创建mapping映射时须要指定字段的类型,如下详细介绍mapping属性常见字段类型。html
每一个字段类型能够指定为ElasticSearch中某个特定的核心类型。ElasticSearch的核心类型以下:
1)字符串类型
2)数值类型
3)日期型
4)布尔型
5)二进制型app
首先介绍一下通用属性。
index_name:该属性是存储在索引中的字段名称。若是未指定,则默认为字段定义的对象的名称。一般忽略该属性。
index:该属性的取值可为analyzed或no,若是为analyzed,则该字段将被索引,于是是能够搜索的;若是为no,则该字段不可被搜索。默认值是analyzed。字符串型的字段有一个额外的选项--not_analyzed,意思是该字段会被索引但不须要分析。所以,该字段按原样写入索引,只有彻底匹配的搜索才能查到该字段。
store:该属性的取值能够为yes或no,用于指定字段的原始值是否存入索引。默认值是no,意味着不能在结果中返回字段的原始值(没有原始值也能够经过_source字段返回原始值)
boost:该属性默认为1。用于定义该字段在文档中的重要性,值越高表示该字段的取值越重要。
null_value:该属性指定若是某字段在被索引的文档中不存在时应写入何值。默认行为是忽略该字段。
include_in_all:该属性指定某字段是否应被包含到_all字段中。默认状况下,若是启用_all字段则包含全部的字段。orm
1、字符串型
term_vector(词向量):该属性的取值能够为no(默认值)、yes、with_offsets、with_positions、with_positions_offsets。该属性表示是否对该字段计算lucene词向量,若是使用的是高亮则须要计算词向量。
omit_norms:取值能够为true或false,默认是false,若是为true则禁用该字段的lucene norms计算,则不能使用索引时加权。
omit_term_freq_and_positions:该属性的取值可为true或false,默认为false。若想创建索引时忽略词频和位置的计算,可将属性设为true。(0.20版本之后开始弃用)
index_options:用于设置索引选项。可能的取值是docs(索引文档的数量)、freqs(索引的文档数量和词频)、positions(索引的文档数量、词频和单词出现位置)。默认值是freqs(从0.20版本开始可用)。
analyzer:用于索引和搜索的分析器名称,默认是全局定义的分析器。
index_analyzer:用于索引的分析器的名称。
search_analyzer:用于处理做用在该字段的查询的分析器的名称。
ignore_above:字段的最大长度,超出指定长度的部分会被忽略。若是只关心字段的前N个字符,则该属性很是有用。htm
2、数值型
precision_step:该属性设置为字段的每一个取值生成的项数。值越低则生成的项数越多,进行range查询时就越快(但索引也会变大),默认值是4。
ignore_malformed:取值能够为true或false,默认值是false。若想要忽略格式错误的数值,则应该设置为true。对象
3、日期型
format:用于指定日期格式。默认值是dateOperationalTime。可选格式参考官方date-format.html文档
precision_step:该属性设置为字段的每一个取值生成的项数。值越低则生成的项数越多,进行range查询时就越快(但索引也会变大),默认值是4。
ignore_malformed:取值能够为true或false,默认值是false。若想要忽略格式错误的数值,则应该设置为true。索引
4、布尔型:取值为true或falseci
5、二进制型(binary)
二进制字段是指用base64来表示索引中存储的二进制数据,可用来存储二进制形式的数据,例如图像。默认状况下,该类型的字段只存储不索引。二进制类型只支持index_name属性文档