Elasticsearch中store field与non-store field的区别
在定义index的mapping的时候,我们可以指定某些fields是否要store(默认是不store)

那么他们有什么区别呢?
PUT /my_index
{
"mappings": {
"my_type": {
"properties": {
"title": {
"type": "string",
"store": true
},
"date": {
"type": "date",
"store": true
},
"content": {
"type": "string"
}
}
}
}
}
其实不管你将store设置为ture or false, elasticsearch都将为我们存储这些field, 不同的是:
- 当store为false时(默认配置),这些field只存储在"_source" field中。
- 当store为true时,这些field的value会存储在一个跟_source平级的独立的field中。同时也会存储在_source中,所以有两份拷贝。
那么什么情况下需要设置store field呢?一般情况有两种情况:
- _source field在索引的mapping 中disable了。这种情况下,如果不将某个field定义成store=true,那些将无法在返回的查询结果中看到这个field.
- _source的内容非常大。这时候如果我们想要在返回的_source document中解释出某个field的值的话,开销会很大(当然你也可以定义source filtering将减少network overhead),比例某个document中保存的是一本书,所以document中可能有这些field: title, date, content。假如我们只是想查询书的title 跟date信息,而不需要解释整个_source(非常大),这个时候我们可以考虑将title, date这些field设置成store=true。
- 需要注意的是,看起来将field store可以减少查询的开销,但其实这样也会加大disk的访问频率。假如你将_source中的10个field都定义store,那么在你查询这些field的时候会将会有10次disk seek的操作。而返回_source只有一次disk seek的操作。所以这个也是我们在定义的时候需要blance的。
elasticsearch的store属性跟_source字段
众所周知_source字段存储的是索引的原始内容,那store属性的设置是为何呢?es为什么要把store的默认取值设置为no?设置为yes是否是重复的存储呢?
我们将一个field的值写入es中,要么是想在这个field上执行search操作(不知道具体的id),要么执行retrieve操作(根据id来检索)。但是,如果不显式的将该field的store属性设置为yes,同时_source字段enabled的情况下,你仍然可以获取到这个field的值。这就意味着在一些情况下让一个field不被index或者store仍然是有意义的。
当你将一个field的store属性设置为true,这个会在lucene层面处理。lucene是倒排索引,可以执行快速的全文检索,返回符合检索条件的文档id列表。在全文索引之外,lucene也提供了存储字段的值的特性,以支持提供id的查询(根据id得到原始信息)。通常我们在lucene层面存储的field的值是跟随search请求一起返回的(id+field的值)。es并不需要存储你想返回的每一个field的值,因为默认情况下每一个文档的的完整信息都已经存储了,因此可以跟随查询结构返回你想要的所有field值。
有一些情况下,显式的存储某些field的值是必须的:当_source被disabled的时候,或者你并不想从source中parser来得到field的值(即使这个过程是自动的)。请记住:从每一个stored field中获取值都需要一次磁盘io,如果想获取多个field的值,就需要多次磁盘io,但是,如果从_source中获取多个field的值,则只需要一次磁盘io,因为_source只是一个字段而已。所以在大多数情况下,从_source中获取是快速而高效的。
es中默认的设置_source是enable的,存储整个文档的值。这意味着在执行search操作的时候可以返回整个文档的信息。如果不想返回这个文档的完整信息,也可以指定要求返回的field,es会自动从_source中抽取出指定field的值返回(比如说highlighting的需求)。
你可以指定一些字段store为true,这意味着这个field的数据将会被单独存储。这时候,如果你要求返回field1(store:yes),es会分辨出field1已经被存储了,因此不会从_source中加载,而是从field1的存储块中加载。
哪些情形下需要显式的指定store属性呢?大多数情况并不是必须的。从_source中获取值是快速而且高效的。如果你的文档长度很长,存储_source或者从_source中获取field的代价很大,你可以显式的将某些field的store属性设置为yes。缺点如上边所说:假设你存储了10个field,而如果想获取这10个field的值,则需要多次的io,如果从_source中获取则只需要一次,而且_source是被压缩过的。
还有一种情形:reindex from some field,对某些字段重建索引的时候。从source中读取数据然后reindex,和从某些field中读取数据相比,显然后者代价更低一些。这些字段store设置为yes比较合适。
总结:
如果对某个field做了索引,则可以查询。如果store:yes,则可以展示该field的值。
但是如果你存储了这个doc的数据(_source enable),即使store为no,仍然可以得到field的值(client去解析)。
所以一个store设置为no 的field,如果_source被disable,则只能检索不能展示。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
相关推荐:
SEO中权重是什么意思?让你迅速网站排名的核心秘密!,长颈鹿智能AI点读机
seo配置是什么,seo设置是什么 ,ai图标制作教程
AI一键生成文章网页版,让内容创作更简单高效
SEO热词:提升网站排名的关键秘诀,一句话营销推广怎么写好
seo需要了解什么,seo需要学些什么内容 ,ovo ai
优化工具:提升工作效率的秘密武器,网站模板的优化策略是什么
SEO做网站点击:提升网站流量的关键策略,国内ai写作论文
seo需要学习什么语言,做seo需要懂什么技术 ,ai软件制作教程
个性化广告:新时代营销的秘密武器,建设经营性网站怎么记账
ChatGPT已识别但不可用?揭秘背后原因与解决方案!,小狸ai和斑马ai语文
seo高手有什么条件,seo难上手吗 ,指南ai写作电力创新
ChatGPT使用问题?如果您正在使用VPN,请尝试将其关闭,ai制作渐变立体
SEO与SEM:谁才是提升网站流量的王者?,Ai中字体如何变形立体
ChatGPT,您的银行卡被拒绝了?别慌,这些方法帮您快速解决问题!,ai给那个标声调
SEO舆情:如何通过有效的舆情管理提升企业品牌形象,seo推广外包提高收录
ChatGPT:我目前无法查看或解析附件,您是否遇到过这样的困扰?,ai+燃烧
SEO占位:如何在竞争激烈的市场中占得先机?,梁平区省心全网营销推广
OpenAI注册问题解决方案:如何顺利通过手机号验证,反对ai头像
seo站长什么意思,站长工具 - seo综合查询 ,ai少女身材
怎么让AI润色文章,让写作更轻松?
OpenAI账号申诉怎么办?全方位解析解决方案,ai写作免费公众号下载
SEO每日:提高网站流量的秘密武器,助你脱颖而出,seo优化和排名技巧
ChatGPT为什么打不开?背后原因与解决方案,慧ai写作
AI做文章:引领智能创作的未来
文字生成AI:开启创意写作的新纪元
SEO考核:如何通过精准的SEO优化提升网站排名与流量,茶艺营销推广方案怎么写
从“官网扒下来”看企业数字化转型的未来,摄影营销策略推广文案
提升写作效率,释放创意潜力文章生成AI软件的未来
在线AI文章生成器开启智能创作新时代
ChatGPT付款被拒?如何应对与解决常见支付问题,掉包ai
ChatGPT页面怎么拖不动?解决问题的终极指南,日韩AI换脸在线观看
ChatGPT出现错误503?你需要知道的解决方案和应对策略,ai拉伸字效
文章自动生成AI:助力写作新时代,让创作更高效
SEO笔记:如何打造高效的SEO策略提升网站排名,网站优化优质服务方案
Bing无法使用怎么办?解决方法及替代方案推荐!,ai文字设计教程
GPT-3.5可以免费使用吗?AI未来的无限可能,ai烧猪
SEO搜索关键词是什么意思?让你轻松网站流量的秘密!,ai颜色不对
360刷排名工具选哪家?揭秘2025年最强排名优化工具!,ai写作网站哪个好一点
优化百:开启数字时代的智能营销新时代,湘潭seo优化报价表
自动AI写文章:轻松创作时代的全新利器
SEO妍:搜索引擎优化的艺术,轻松打造网络营销新未来,辽宁网站建设贵不贵
SEO优化:让你的网站在竞争中脱颖而出,临沧seo代理
Chatget免费网站版无需登录,畅享无限对话体验!,工业 Ai 视觉检测
2025年SEO最新技术:让你的网站脱颖而出!,ai少女特色
亚马逊seo是什么公司的,“亚马逊” ,ai玩底特律
SEO收集:如何通过有效数据收集提升网站排名,鞍山商城网站建设报价
SEO词的魔力:如何通过关键词优化打破流量瓶颈,免费网站建设高端
seo网站是什么找行者SEO,seo分析网站 ,ai图文梅花
优化分析:提升企业效益的关键策略,山东大网站建设
SEO优化中怎么找关键词:全面解析与实战技巧,ai2002.4.8