Elasticsearch中的_source、_all、store、index

原始文档数据在进入es中之后,es会将其存为两份,一部分是对其中的索引字段数据进行分词索引,然后存储所有的分词索引结果,这个结果并不一定是整个文档数据(通常都指定索引部分字段)。而另一份则是原始文档数据,而该文档的所有的分词索引都会指向该文档。

1. _source的作用

_source就是指源文档的存储,你可以理解为是es将你传输的原始文档数据放在了_source字段中存储,该设置是用来控制是否存储源文档数据的,如果将该设置设置为false,那就表示不会存储源文档的数据。会出现的问题就是导致查询的时候无法完整展示所有文档数据,只能看到索引中的数据。在检索数据时,最终检索结果实际上就是_source中的数据。

2._all的作用

与_source类似,_all也是一个字段,同样也是存储了完整的文档数据,但不同的是_all是一个超级字段。以图中的文档为例,如果开启_all字段,那么name+author+content会组成一个超级字段,这个字段包含了其他字段的所有内容,当然也可以设置只存储某几个字段到_all属性里面或者排除某些字段,该字段默认不会被存储,也就是说只会在进行分词索引时存在,分词索引结束后该字段就不会存在,如果要存储该字段,对_all字段开启store属性即可。

_all主要是在当检索内容无法确定是在哪个字段上的时候,比较适合开启该字段。

3.文档对象中设置字段的store属性作用

@Document(indexName = "item",type = "docs", shards = 1, replicas = 0)
public class Item {
    @Id
    private Long id;

    @Field(type = FieldType.Text, analyzer = "ik_max_word", store = false)
    private String title; //标题

    @Field(type = FieldType.Keyword)
    private String category;// 分类

    @Field(type = FieldType.Keyword)
    private String brand; // 品牌

    @Field(type = FieldType.Double)
    private Double price; // 价格

    @Field(index = false, type = FieldType.Keyword)
    private String images; // 图片地址

    public Item() {
    }
   
}

store属性设置作用于文档中的某个字段之上,表示是否开启索引字段原数据存储,其实简单来理解就是将_source的范围缩小为某个属性字段,设置为true后,es会将该属性字段的原数据额外单独存储一份,即该字段的原数据会存储两份,一份是在原始文档,另一份则是单独该字段的存储。这也是为什么es的API中默认将该属性设为false,因为其与_source字段重复存储了同一部分数据。

_source和store两个设置任意为true都能够对字段实现高亮查询,因为高亮查询必须保证原字段数据的存储,才能进行高亮查询。

通常不建议开启该属性,store属性和_source字段两个设置同时开启会存储重复数据。而且当通过索引检索时,检索的结果中如果包含store属性字段,该store属性字段的内容不会从原始文档中读取,而是额外进行一次IO,读取该字段的单独存储的文档,所以会损失部分性能。

总结:
(1)_source和_all其实都是两个字段,只不过区别是_source是存储的结构化的原始文档,而_all是存储的是一个所有field字段拼接而成的字符串,两者是有区别的。
(2)store是作用于field(字段)上的属性,决定该field是否单独存储一份文档,该属性可以作用于_all字段上,但与_source字段重复。

注: 转载自https://www.codenong.com/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容