ES数据类型及不同类型映射的参数

官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-types.html

本文主要是对官网ES的数据类型的翻译以及个人理解。

text类型

text类型是用于索引全文字段的值,如emal的body内容或者一个产品的具体描述。这些字段都是需要经过分词处理的(analized),也就是说,这些字段会经过分析器处理,产生一个term集合,然后根据产生的term建立倒排索引表。有了分析过程,ES就允许单独根据全文字段中的某些词来进行单独搜搜。比如email_body字段的值为“我今天晚上请你吃饭”,我们可以根据其中任何某写词来搜索到这封emai,如输入“吃饭”,是可以搜索到该封email的。

text类型的字段不能用于排序,也几乎不会用来聚合。

如果想要在es中存储索引结构化字段,如email地址,主机名,装吗,标签等字段,使用keyword类型。

text类型在映射的时候支持的参数

参数名描述

analyzer

指定分析器,默认和index_analyzer一致或者默认就是standard分析器
search_analyzer

查询时使用的分析器。注:后续会说明es使用分析器的顺序。

search_quote_analyzer指定phrase搜索使用的分析器
boost该字段的boost值,默认为1
index该字段是否被索引(是否建立倒排索引),默认为true
store

该字段是否和倒排索引分开存储,以便可以独立获取。默认为false。

store指示是否要在lucene中单独存储,即使lucene不单独存储。ES的_source字段默认是存储所有字段的,所以可以从es的_source中解析获得字段值。

fielddata

默认为false。指示该字段是否在内存中存一份,方便聚合。

doc_values和fielddatahttps://blog.csdn.net/zhanglh046/article/details/78536143讲的比较清楚,可以参考

fields

多字段存储。同一个字段存储多份。比如一个字段用于搜索,一个字段用于聚合和排序,或者两个字段使用不同的分析器。

注意:ES的动态映射对字符串字段默认就是映射成两个字段,一个是text类型,一个是keyword类型。(嵌套字段)

index_options指示哪些信息应该存储到倒排索引表中。使用默认值就好

lucene中两种索引文件:倒排索引(用于搜索),正排索引(用于排序和聚合)

对应的ES中映射时的参数:

index----建立倒排索引。text默认使用standard开启,其他字段不分词开启

doc_values---对不分词字段建立正排索引(in memory+dis),text类型不支持。其他类型默认开启

fielddata----对分词字段建立正排索引(in memory)。默认不开启

 

 

 

 

 

未完待续。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值