首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ES 6.x,join类型,当上下级单据字段相同时。将其存储为一个字段还是两个字段?

在ES 6.x中,join类型是用于处理父子关系的一种数据类型。当上下级单据字段相同时,可以选择将其存储为一个字段或两个字段,具体取决于业务需求和数据查询的频率。

如果上下级单据字段相同的情况较为常见且需要频繁查询,可以考虑将其存储为一个字段。这样可以减少存储空间的占用,并且在查询时可以直接通过父子关系进行关联查询,提高查询效率。

如果上下级单据字段相同的情况较为罕见或者查询频率较低,可以选择将其存储为两个字段。这样可以更加灵活地处理上下级单据之间的关系,同时也可以避免在查询时进行额外的关联操作。

腾讯云提供了多种与ES相关的产品和服务,如腾讯云ES(Elasticsearch Service),它是一种托管式的Elasticsearch服务,提供了稳定可靠的Elasticsearch集群,可以帮助用户快速搭建和管理Elasticsearch环境。您可以通过以下链接了解更多关于腾讯云ES的信息:

腾讯云ES产品介绍:https://cloud.tencent.com/product/es

请注意,以上答案仅供参考,具体的存储方式还需要根据实际业务需求和数据特点进行综合考虑。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

一文搞懂 Elasticsearch 之 Mapping

数字、布尔 字段,倒排索引的相关配置,比如设置某个字段不被索引、记录 position 等 在 ES 早期版本,一个索引下是可以有多个 Type 的,从 7.0 开始,一个索引只有一个 Type,也可以说一个...比如一个新的文档,这个文档包含一个字段,当 Dynamic 设置 true 时,这个文档可以被索引进 ES,这个字段也可以被索引,也就是这个字段可以被搜索,Mapping 也同时被更新;当 dynamic..."last": "px" } } 实际上 ES将其转换为以下格式,并通过 Lucene 存储,即使 name 是 object 类型: { "name.first"..."my_ip": { "type": "ip" } } } } Join 类型 Join 类型ES 6.x 引入的类型,以取代淘汰的 _parent...例如定义一个 ID 1 的父文档: PUT my_join_index/1?

2.5K20

Springboot2.x整合ElasticSearch7.x实战(三)

字段,倒排索引的相关配置,比如设置某个字段不被索引、记录 position(位置) 等 在 ES 早期版本,一个索引下是可以有多个 Type ,从 7.0 开始,一个索引只有一个 Type,也可以说一个...也同时被更新;当 dynamic 被设置 false 时候,存在新增字段的数据写入,该数据可以被索引,但是新增字段被丢弃;当设置成 strict 模式时候,数据写入直接出错。...: "px" } } 实际上 ES将其转换为以下格式,并通过 Lucene 存储,即使 name 是 object 类型: { "name.first": "wu", "name.last":...如果将 username 设置对象类型,那么 ES将其转换为: { "group": "users", "username.first": ["wu", "hu", "wu"], "username.last..."my_ip": { "type": "ip" } } } } Join类型 Join 类型ES 6.x 引入的类型,以取代淘汰的 _parent 元字段,用来实现文档的一对一

3.5K00

一次看完28个关于ES的性能调优技巧,很赞,值得收藏!

ES一个P2P类型的分布式系统,使用gossip协议,集群的任意请求都可以发送到集群的任一节点,然后ES内部会找到需要转发的节点,并且与之进行通信。...,fielddata,storefield三种类型,大部分情况下,并不需要三种类型存储,可根据实际场景进行调整: 当前用得最多的就是doc_values,列存储,对于不需要进行分词的字段,都可以开启doc_values...字段,默认情况下,数据在写入es的时候,es会将doc数据存储_source字段,查询时可以通过_source字段快速获取doc的原始结构,如果没有update,reindex等需求,可以将_source...字段disable; _all,ES6.x以前的版本,默认将写入的字段拼接成一个大的字符串,并对该字段进行分词,用于支持整个doc的全文检索,在知道doc字段名称的情况下,建议关闭掉该字段,节约存储空间...同时ES的keyword,数组类型采用doc_values结构,每个文档都会占用一定的空间,即使字段是空值,所以稀疏索引会造成磁盘size增大,导致查询和写入效率降低。

1.9K30

【你真的会用ES吗】ES基础介绍(一)

ES的话来说,你比ES更懂你的数据,一些配置信息,限制信息,还是需要在了解了ES的功能之后进行人工限制。你是否遇到:在使用了一段时间ES之后,你期望使用ES的其他功能,但因为字段类型而受限的问题?...在ES里,索引有两个含义:名词:一个索引相当于关系型数据库中的一个表(在6.x以前,一个index可以被认为是一个数据库,可以承载相同scheme的数据。...例如,一个index下的不同type里有两个名字相同的字段,他们的类型(string, date 等等)和配置也必须相同。只在某个type里存在的字段,在其他没有该字段的 type 中也会消耗资源。...但是同时,又提出,你肯定比ES更了解你的数据,可能刚开始使用起来觉得比较方便,但是最好还是自己明确定义映射关系。...⚠️默认分词情况下,无论是term还是match,都无法判断string类型字段是否空字符串以上两点均是因为text字段存储的是分词结果,如果字段空,分词结果将不会存储term信息,keyword

2K73

数万字长文带你入门elasticsearch

elasticsearch es基本概念 es术语介绍 文档Document 用户存储es中的数据文档 索引Index 由具有相同字段的文档列表组成 节点node 一个Elasticsearch的运行实例...geo_shape 专用类型 记录ip地址ip 实现自动补全completion 记录分词数token_count 记录字符串hash值murmur3 percolator join字段特性 允许对同一个字段采用不同的配置...写入文档到buffer时,同时将该操作写入translog translog文件会即时写入磁盘(fsync),6.x默认每个请求都会落盘,可以修改为每五秒写一次,这样风险便是丢失5秒内的数据,相关配置...,否则设定为keyword类型 枚举类型 基于性能考虑将其设定为keyword类型,即便该数据整性 数值类型 尽量选择贴近的类型,比如byte即可表示所有数值时,即选用byte,不要用long 其他类型...写文档到buffer时,同时将该操作写入translog translog文件会即时写入磁盘,6.x默认每个请求都会落盘,可以修改为每五秒写一次,这样风险便是丢失5秒内的数据,相关配置index.translog

1.7K20

B端OMS系统设计:产品结构与流程

本文章描述我个人对B端OMS模块的功能设计、流程设计与上下级模块交互等。 因笔者一直从事的是电商相关行业,顾名思义,我定位的上级就是各个电商平台,第三方等、下级类似于各个商家。 订单大体产品结构 ?...与下级模块交互时可能会需要的字段 这块根据各个产品制定,有些是属于行业专属类似于3c类目的sn码,食品生鲜类目的保质期等; 发票信息:消费者需开通发票,联通开票系统时需存储的信息 标识类内容:例如来自于消费者的留言信息...简述了订单模块的两个规则类设置,针对不同的业务场景不同的行业,也会衍生出不同的规则,同时也需要考虑的就是多种规则的执行顺序,即优先级问题。...订单被”规则”后,流入OMS系统中,这部分也就是B端用户对订单的操作,我们大体可以对订单类型做这样的概括: 待付款 待发货 异常 已发货 代付款状态比较好理解,消费者下单后,或已经产生单据或在购物车中,...售后单据类型大体仅退款业务,退货退款,换货,补发四种类型,如某宝支持发货前消费者申请仅退款,发货后消费者申请退款退款不支持仅退款,某猫支持消费者申请换货等、漏发等由于商家端的问题则会用补发补偿消费者。

2K23

这份​Elasticsearch 工作笔记,值得收藏

处理字符串类型数据的ingest processor, 不支持传入的field字段数组 对Lowercase Processors、Uppercase Processors、Trim Processors...等处理字符串类型数据的ingest processor, 都支持要处理的字段类型数组类型: 相关issue: https://github.com/elastic/elasticsearch/issues..."visit_cnt": 1000, "visit_scene": 2 } } } } 16 . mustache小胡子脚本,用于把一个数组类型字段复制到另外一个字段...es会基于使用频次自动缓存查询。如果一个非评分查询在最近的 256 次查询中被使用过(次数取决于查询类型),那么这个查询就会作为缓存的候选。...35 . es统计的索引大小是整个索引所占空间空间的大小,整个索引包括很多文件,比如tim词典,tip词典索引,pos位置信息,fdt存储字段信息(_source实际存储的文件),等等。

1.6K61

Elasticsearch 基础入门详文

ES 里,索引有两个含义: 名词:一个索引相当于关系型数据库中的一个表(在 6.x 以前,一个 index 可以被认为是一个数据库) 动词:将一份 document 保存在一个 index 里,这个过程也可以称为索引...例如,一个 index 下的不同 type 里有两个名字相同的字段,他们的类型(string, date 等等)和配置也必须相同。...⚠️默认分词情况下,无论是 term 还是 match ,都无法判断text 类型字段是否空字符串 以上两点均是因为 text 字段存储的是分词结果,如果字段空,分词结果将不会存储 term 信息...事情的调查结果 针对缺失数值类字段的默认值并不是 0,ES 默认会保证排序字段没有 value 的文档被放在最后,默认情况下: 降序排列,缺失字段默认值字段类型的最小值 升序排列,缺失字段默认值字段类型的最大值...1970 年 如果直接使用 numberic 类型,例如 integer 存储时间戳 不管是秒级还是毫秒级,都无法被正确识别 正确的做法:创建 mapping,明确指定时间的格式秒级时间戳。

88371

技术博客测试: Elasticsearch

可以说,现在的企业正在寻找数据存储的替代品,以期促进快速检索,而 Elasticsearch(ES)的出现很好解决这些问题。 image 1、什么是 Elasticsearch?...它从各种来源获取数据,并将其存储针对搜索进行了高度优化的复杂格式。如上所述,Elasticsearch 将 Apache Lucene 作为搜索的核心。...index 里面存在多个 type 跨多个Elasticsearch集群搜索,保留原来的索引在 5.x 群集,跨群集搜索来同时搜索 6.x 和 5.x 群集 跨群集复制(CCR) 更友好的的升级及数据迁移..., 每个字段都有对应的字段类型(字符串/数值/布尔/日期/二进制/范围类型) 每个文档都有一个 Unique ID 可以自己指定 ID 或者通过 Elasticsearch 自动生成 案例 {...doc类型 Type(表),每一个类型包含多个文档 Document(记录),然后每个文档包含多个字段 Fields(列),DSL 相当于 RDBMS 的 SQL。

46950

《ElasticSearch6.x实战教程》之复杂搜索、Java客户端(下)

场景1 存储一个公司的员工,员工信息包含姓名、工号、性别、出生年月日、岗位、上级、下级、所在部门、进入公司时间、修改时间、创建时间。...李四的上级是张三,他的下级是王五、赵六、孙七、周八,他同时是市场部和研发部的负责人,也就是隶属于市场部和研发部。 王五、赵六的上级是张三,他没有下级,他隶属于市场部。...场景2 存储商品数据,根据商品名称搜索商品,要求准确度高,不能搜索洗面奶结果出现面粉。 由于这个场景主要涉及的是搜索的精度问题,所以并不会有复杂的数据结构,只有一个title字段。...原因在分词一章中已经说明,text类型默认分词器standard,它会将中文字符串一个一个字拆分,也就是将"洗面奶"拆分成了"洗"、"面"、"奶",将"面粉"拆分成了"面"、"粉"。...父子文档的数据插入 父子文档在ES存储的格式实际上是以键值对方式存在,例如在定义映射Mapping时,我们将子文档定义: { ......

91630

触类旁通Elasticsearch:关联

ES本身不支持SQL数据库的join操作,在ES中定义关系的方法有对象类型、嵌套文档、父子关系和反规范化。 一、文档间关系概览 1....造成这种错误的原因是对象类型将所有数据都存储在一篇文档中,ES并不知道内部文档之间的边界,如图1所示。 ?...图2 嵌套类型使得ES将多个对象索引到多个分隔的Lucene文档 在某些用例中,像对象和嵌套类型那样,将所有数据存储在同一个ES文档中不见得是明智之举。...如果这个name字段存储在嵌套类型的members对象中,那么需要将terms聚合封装在nested聚合中,并将聚合的路径path设置会员members: curl '172.16.1.127:9200..._routing字段是被存储的,因此可以检索其内容。同时,这个字段也是被索引的,这样可以通过条件来搜索其值。

6.2K20

ElasticSearch 6.x 学习笔记:11.映射Mapping

long型,bookName字段推测text类型,publishDate字段推测date类型,这些推测都是我们可以接受的。...静态映射与关系数据库中创建表语句类型,需要事先指定字段类型。相对于动态映射,静态映射可以添加更加详细字段类型、更精准的配置信息等。 (1)新建映射 在6.x中创建的索引只允许每个索引有单一类型。...换句话说,使用上面的例子,类型中的user_name字段和user类型中的字段存储在完全相同的user_name字段中tweet,并且两个 user_name字段在两种类型中都必须具有相同的映射(定义)...本join场替代亲子可在5.6中创建索引。 Elasticsearch 6.x 在5.x中创建的索引将继续在6.x中运行,就像在5.x中一样。...在6.x中创建的索引只允许每个索引有单一类型。任何名字都可以用于这个类型,但是只能有一个。 该_type名称不能再与_id该_uid 字段组合。该_uid领域已成为该_id领域的别名。

72210

干货 | Elasticsearch 趋势科技实战分享笔记

6.X版本已经不支持,7.X版本彻底不支持。 扩展问题:5.X版本的父子文档实际实现中是一个索引中定义了多个type,到了6.X中实现方式改变为:join方式。...举例: "_source":{ "enabled":false }, 注意3:将_all设置false。 假设你确切地知道你对哪个field做查询操作? 能实现性能提升,缩减存储。...举例: "dynamic":"strict", 注意5:使用keyword类型 假设你只关心完全匹配 提高性能和缩小磁盘存储空间 举例: "CLF_CustomerID":{ "type":"keyword...思考索引中要大致有哪些字段? 最好能列一个Excel表统计一下,包含但不限于: 序号、名称、类型、作用、备注。 以上对计算单条数据大小也有用。 步骤2:评估数据量。...2、分片数量= k *数据节点数目(k = 一个足够小的整数,举例:1,2,3) 3、假设你有一个小的索引,并且你有集群中有足够的节点,请尝试使用默认值分片数5。 步骤5:评估索引数和类型

85610

解析大型.NET ERP系统 20条数据库设计规范

RefNo是字符串类型,可用于单据编码功能中自动填写单据流水号,从表的EntryNo是行号,LineNo是SQL Server 的关键字,所以用EntryNo作为行号。...这样可以保证每张单据的第一个参考编号输入控件看起来都是一样长度。 除非特别需求,一般而言,界面中控件的长度取自映射的数据库中字段的定义长度。...10 多货币(本位币)转换字段的设计 金额或单价默认是以日记帐中的货币记录,当默认货币与本位币不同时需要同时记录下本位币的值。...15 日志表记录编号LogNo字段设计 LogNo字段的设计有些巧妙,以出仓单例子,一张出仓单有5行物料明细,每一行物料出仓都会扣减库存,再写物料进出日记帐,因为这五行物料出仓来自同一个出仓单,于是将这五行物料的日记帐中的...文件的MD5当于文件的唯一识别身份,在网上下载文件时,网站常常会放出文件的MD5值,以方便对比核对。

2.4K70

使用ElasticSearch的44条建议

03 索引字段有为“索引(indexed)”和“存储(stored)”两个属性,只有被“索引”的字段才能在查询/排序条件中使用,只有被“存储”的字段才能在请求的时候返回字段内容。...14 es1.x版本默认date类型处理会在format parse失败后尝试用long.valueOf来转换,假设字段配置date类型,formatYYYY-MM-dd HH:mm:ss,那么传入一个...15 es的source是单独作为一个字段存储的,而且是保持传入的样式原样保存,假设字段A类型long,如果传入的doc={A: "12345"},即使Astring类型也是可以正确录入的,但是返回的...注意,设置retryOnConflict请保证此次操作是幂等的,如果不是,还是在业务程序内处理重试吧,比如一个带状态的字段更新,A请求更新1,B请求更新2,B先于A更新成功,A报conflict异常...es的doc中字段A内容是"12345",es就会给字段A定义long类型,就不符合预期了。

86520

ES三周年】ElasticSerach基础概念知识梳理

1、ES核心概念组成 ● 索引 index:一个索引相当于一个关系数据库的数据库 ● 类型 type:一种type相当于关系数据库的一类数据表,在ES 7.x默认type_docES 5.x中一个索引...(index)可以有多种typeES 6.x一个索引(index)只能有一种type ES 7.x版本以后,将逐步淡化type这个概念,现在的操作已经不再使用,默认_doc ● 映射 mapping:...mapping定义了每个字段类型字段所使用的分词器信息。...:相当于关系型数据库表的字段名称2、ES数据类型介绍2.1 字符串型 text:用于全文索引,该类型字段将通过分词器 进行分词keyword:不进行分词,只能搜索该字段的完整的值2.2 数值型long...binary该类型字段把值当做经过 base64 编码的字符串,默认不存储,且不可搜索2.5 范围类型范围类型表示值是一个范围,而不是一个具体的值integer_range, float_range

1.1K10

一起学Elasticsearch系列 -Nested & Join

ES的 Nested 类型用于处理在一个文档中嵌套复杂的结构数据,而 Join 类型用于建立父子文档之间的关联关系。...嵌套类型:Nested Elasticsearch没有内部对象的概念,因此,ES存储复杂类型的时候会把对象的复杂层次结果扁平化为一个键值对列表。...ignore_unmapped(可选):如果设置 true,则忽略没有嵌套字段映射的文档,并将其视为无匹配。默认情况下,设为 false。...每个博客可以有多个评论,我们可以使用Join类型来建立博客和评论之间的父子关系。 首先,我们定义一个包含两个类型的索引:blogs和comments。...blogs类型表示博客,而comments类型表示评论。我们将为blogs类型定义一个Join字段,用于与comments类型建立关联。

31710

ES海量数据的优化实践

ES一个分布式,高实时的搜索引擎,覆盖许多实时检索场景和更低的响应时效,所有类型的数据提供近乎实时的搜索和分析。ES的检索能力广泛应用于各种搜索场景中。...索引字段默认均开启列存(text类型不可开启),存储大小由不分词类型索引的字段数据情况决定。当前ES集群6.8,不支持压缩,无优化空间。...2.2.3 字段数过多此外随着数据的复杂度提升,存储字段愈来越多,如果非检索字段全部存储独立字段,也存在触及ES字段数限制的风险(1000个),因此需要一个更好的方案来解决这些非检索字段存储。...2.3.1 构建统一数值存储字段设计一个统一数值存储字段,将非检索类型中,数值类型字段统一存储到这个统一存储字段中,避免了原始数据中的json字典key过多和key值冗余存储过大,可以有效优化ES存储...虽然ES也有列存储文件,但是它的应用场景是聚合索引,6.x以下ES版本不支持压缩,并且对text类型索引字段无法支持列存。

2.6K40

Elasticsearch 6.x版本全文检索学习之数据建模

答:第一步、是何种类型字段。是日期类型还是字符串类型的。     第二步、是否需要检索字段。需要检索index设置true,否则设置false。     第三步、是否需要排序和聚合分析。...答:a、字符串类型,需要分词则设定为text类型的,否则设置keyword类型的。     b、枚举类型,基于性能考虑将其设定为keyword类型,即便该数据整型。     ...Comments默认是Objetc Array类型存储结果类型是对应的字段一个括号里面。 ? 使用nested object解决查询结果不符合要求的现象。 ?...Nested Object Array的存储类型,nested object是独立存在的。即自己对应的字段一个括号内。查询的结果如下所示: ? 13、关联关系处理之Parent/Child。...Elasticsearch还提供了类似关系数据库中join的实现方式,使用join数据类型实现。 ? 关联关系处理之Parent/Child。常见query语法包括如下几种。

93220
领券