首页
学习
活动
专区
圈层
工具
发布

ES系列之嵌套文档和父子文档

索引是独立文档的集合体。不同的索引之间一般是没有关系的。 不过ES目前毕竟发展到7.x版本了, 已经有几种可选的方式能够高效的支持这种一对多关系的映射。 比较常用的方案是嵌套对象,嵌套文档和父子文档。...嵌套文档 很明显上面对象数组的方案没有处理好内部对象的边界问题,JSON数组对象被ES强行存储成扁平化的键值对列表。...可以看到嵌套文档的方案其实是对普通内部对象这种方案的补充。上面那个电商的例子mapping太长了,我换个简单一些的例子,只要能说明问题就行了。...父子文档 我们还是看上面那个例子,假如我需要更新文档的group属性的值,需要重新索引这个文档。尽管嵌套的user对象我不需要更新,他也随着主文档一起被重新索引了。...嵌套对象可以解决普通子对象存在的问题,但是它有两个缺点,一个是更新主文档的时候要全部更新,另外就是不支持子文档从属多个主文档的场景。 父子文档能解决前面两个存在的问题,但是它适用于写多读少的场景。

4.6K21

Elasticsearch学习-嵌套文档

在Elasticsearch取消了多个索引内创建多个type的机制,由于场景需要,所以调研了嵌套文档和父子文档 [image] 以文章和文章留言为例,嵌套文档都在一个文档内,而父子文档则分开存储了父文档与子文档...1、嵌套文档 嵌套文档看似与文档内有一个集合字段类似,但是实则有很大区别,以上面图中嵌套文档为例,留言1,留言2,留言3虽然都在当前文章所在的文档内,但是在内部其实存储为4个独立文档,如下图所示。...1.1 创建索引 接下来,介绍一下如何创建嵌套文档索引,比如有这样的数据,如下: { "title": "这是一篇文章", "body": "这是一篇文章,从哪里说起呢? ... ......使用嵌套文档时,文档的分数计算需要注意,参考官方文档的描述: nested 查询肯定可以匹配到多个嵌套的文档。...} } ] } } } } } 需要注意的是,在sort内,又添加了nested_filter来过滤一遍上面嵌套文档的查询条件

1.4K00
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MongoDB(10)- 查询嵌套文档

    : "postcard", qty: 45, size: { h: 10, w: 15.25, uom: "cm" }, status: "A" } ]); 后面的栗子都会用到这里的测试数据 精确匹配嵌套文档...换了个字段顺序就查不到同一条文档了 查询嵌套字段 要在嵌入/嵌套文档中的字段上指定查询条件,语法格式如下 "field.nestedField" 跟 JSON 取值一样,用 ....,找到嵌套文档的 h 字段值等于 in 的所有文档 栗子二:嵌套字段结合单个查询条件操作符 > db.inventory.find( { "size.h": { $lt: 15 } } ) { "_id...,找到嵌套文档的 h 字段值小于 15 的所有文档 栗子三:多个不同嵌套字段结合 and 操作 > db.inventory.find( { "size.h": { $lt: 15 }, "size.uom...", "qty" : 100, "size" : { "h" : 8.5, "w" : 11, "uom" : "in" }, "status" : "D" } 三个条件必须同时满足 size 字段,嵌套文档的

    2.4K21

    Mongodb多键索引之嵌套文档

    接上上一篇文档 Mongodb多键索引之数组,本次继续多键索引,到目前为止还没有分析业务中具体使用方式以及需求,只知道需要使用多键索引来满足不同查询,通过一个多键索引来解决不同谓词过滤,具体能否实现以及到底使用数组...、嵌套文档还是数组文档方式?...【嵌套文档如何使用高效索引查询】 1、集合中随机一条文档信息 关注:item嵌套文档,包括2组key:value的字典格式,name&manufactured 备注:所有数据格式都是一致,查询随机一条用于显示...Katie","manufactured" : 16}}).explain("executionStats").executionStats.executionTimeMillis; 453 3、如何创建索引来完全匹配嵌套文档...662 } xiaoxu:PRIMARY> db.survey.find({"item.name":"Katie","item.manufactured" : 16}).count(); 1 ‍ 4、如何创建索引来匹配嵌套文档部分值

    3.4K40

    如何贡献文档

    如何贡献文档 PaddlePaddle的文档包括英文文档 doc 和中文文档 doc_cn 两个部分。...1 如何构建文档 PaddlePaddle的文档构建有三种方式。 A.使用PaddlePaddle.org工具 这个是目前推荐的使用方法。除了可以自动编译文档,也可以直接在网页预览文档。...2 如何书写文档 PaddlePaddle文档使用 sphinx(http://www.sphinx-doc.org/en/1.4.8/) 自动生成,用户可以参考sphinx教程进行书写。...3 如何更新www.paddlepaddle.org 更新的文档以PR的形式提交到github中,提交方式参见 贡献文档 (http://www.paddlepaddle.org/docs/develop...目前PaddlePaddle的develop分支的文档是自动触发更新的,用户可以分别查看最新的 中文文档 和 英文文档 。(点击“阅读原文”查看)

    1.3K90

    技术文档如何编写?

    按照现有文档完成后的文档输出如何组织? 0. 程序员如何看待文档? 程序员一定会是接触各种各样的技术文档,文档写的好与不好,大致都能区分出来。...我觉得出现问题在于:程序员对于如何有效的逻辑表达以及优秀的排版没有意识。...什么是好的文档? 如何定义一份文档是通俗意义上的好? 就个人的认识,可以从 GitHub 上的最热门的开源项目的文档入手?...阅读这些项目的文档,一定有个感官的认识:文档写的好,根据文档能使用起来,整体文档的风格也高度的统一。 一个好的文档我认为具有下面三个特点:准确、清晰和美观 准确和清晰对应逻辑梳理和表达。...) 2.2 梳理 根据收集的到的资料,感性的认识到文档的整体流程是什么,以及需要注意些什么 记录:把已知问题进行记录 梳理环节主要是关注现有文档的整体流程以及你如何可以对现有流程优化 2.3 实践 根据收集的资料和现有的文档进行操作

    8.1K61

    PRD文档如何撰写

    ,用户、场景、需求、和解决方案,后续对这个需求的考核、效果如何,很多时候得到的答案就是没有需求文档。...1、文档名 格式:[PRD]+产品名+产品版本 例子:[PRD] 好奇心日报App v1.0 解释下为为什么要如此命名:因为产品经理会有许多文档,比如需求收集文档、用户用例文档、还有一些非需求的文档等等...我们团队的成员大部分时间也是看这部分,这一大模块主要包含几个部分,分别是: 一、产品架构 在网上找的,就是用思维导图把产品的架构梳理出来,这个图就是让参与者知道我们这个产品大概的样子,是如何架构的...网上找的图,关于如何做业务流程图的思路我前面的文章有写过,这里用一句话再简单复述一遍:“就是目标用户,用我这个产品怎么实现他的需求”,这里以开发的视角来绘制,清晰表达用户流和数据流向。...到此一个完整的需求文档的结构就写完了,补充一点每个版本迭代都另存一份文档,不要在一个文档里无限的加,这样方便追溯,也方便别人查看,其实这需求文档说说挺容易的,真正做起来做的好的,是需要花费挺长时间的。

    3.5K75

    如何阅读技术文档

    答:“去看文档” “Django的文档都是英文,我看不下去,怎么办” 答:“bla bla bla…. 关于英文的重要性” “Django的文档那么多,我是不是都得看完才行?”...但是剩下的其他文档怎么办?不用看了吗?怎么个看法,据说一千多页呢! 这篇文章我根据我的想法讨论下应该如何阅读Django的文档比较合适。...再之后,每每遇到问题请教同事或者在网上查得时候总能得到这样的反馈——你看过这部分的文档吗?!先去看看文档再来讨论。...于是乎,在这样不断的被鄙视过程中不断的熟悉了Django的官方文档,对于Django的问题也终于有了正确的认识——那就是,有问题就去看文档;出错了,一定是你文档看的不仔细。...除了在这样被鄙视的的状态下去看文档的,自己也尝试过去挨篇读文档,唯一的收获就是大概知道有哪些东西了,附带的收获就是对文档这东西不那么陌生了。

    2.4K90

    在RPA项目中有哪些文档,如何使用这些文档

    文档的过程就是软件开发的过程,文档是软件开发规范和指南。...在这里我就不举例每一种文档了,只列举下列通用的4种文档类型: 可行性分析文档(FAD) 流程定义文档(PDD) 方案设计文档(SDD) 测试场景文档(TSD) A.   ...方案设计文档(SDD) 基于流程定义文档,开发团队会进行相应的方案设计和具体的系统实现,并形成方案设计文档。该文档包含相应的方案流程图和完整的实现步骤,覆盖流程定义文档的所有流程和功能点。 D....测试场景文档(TSD) 测试场景文档用于检查编写的代码和流程是否能满足业务需求。该文档需要能覆盖所有的测试场景和业务规则。当开发人员自测或者客户测试时,都可以依据该文档进行相关的测试。...在项目中如何使用文档,目前大致分为三类: 完全遵循开发流程并产生相应的文档 只产生关键的文档,对于非关键的文档可有可无 没有相应的文档或文档内容粗略 对于类型1和2中的文档的把控,完全取决于公司内部的章程和项目的要求

    1.4K10

    信息检索中“禁止文档”的过滤新方法

    信息检索中“禁止文档”的过滤内容所有者投入大量精力来消除可能对客户产生不利影响的不良内容。不良内容可以采取多种形式,例如假新闻、付费评论、垃圾邮件、攻击性语言等。...我们将此类数据项(文档)简称为禁止文档或 f-docs。然而,任何数据清洗过程都容易出现错误。无论清洗过程投入多少精力,一些不良内容仍可能残留。...正确的评估指标我们寻找一种评估指标,该指标根据三个标准来强化排序器:它 (1) 从检索列表中剪除尽可能多的 f-docs;(2) 不从列表中剪除非 f-docs;(3) 根据剩余文档与查询的相关性对其进行排序...当所有标签分数都是非负值时——即,结果的前 k 个文档中没有 f-docs——nDCG 被限定在 0, 1 范围内,其中 0 表示所有搜索结果都不相关,而 1 表示排序是理想的。...模型构建在确定了相关指标之后,我们的论文将重点转向联合学习排序与过滤。我们假设一个 LTRF 模型能够优化搜索结果的排序,同时调整过滤阈值,使得任何分数低于此阈值的文档都被过滤掉。

    15400

    做好技术文档的几大要素(按过往经验整理)

    在技术领域,撰写高质量的技术文档是确保知识传递和项目成功的重要环节。本文将围绕如何写好一篇技术文档展开讨论,分享一些关键要素和最佳实践,以帮助技术人员提升文档质量。 1....文档要足够简洁详实 技术文档的首要原则是简洁与详实并重。读者往往希望快速获取信息,因此文档应避免冗长的描述。以下是一些建议: 使用简洁的语言:避免使用复杂的术语,确保读者能够轻松理解。...补充常见问题 在文档完成后,读者在实际操作中可能会遇到各种问题。为了提高文档的实用性,建议在文档末尾添加“常见问题解答”部分,列出用户可能遇到的普遍问题及其解决方案。...定期更新文档 技术文档应随着技术的进步和项目的发展而不断更新。定期审查和更新文档内容,确保信息的准确性和时效性。可以设置一个文档更新的时间表,明确责任人。...图文并茂 图文并茂的文档更容易吸引读者的注意力,并帮助他们更好地理解复杂的概念。可以使用流程图、截图和示意图等方式来增强文档的可读性。 7.

    73710

    如何实现文档检索(上)

    ()更新MongoDB文档 使用find()查询MongoDB中的文档 基本查询操作 基本查询操作包括一些简单的操作,比如获取MongoDB集合中的所有文档。...我们来看一个如何实现例子。 我们所有的代码都将在MongoDB JavaScript命令窗口中运行。我们在MongoDB数据库中有一个“ Employee”的集合,我们可以执行下面的命令。 ?...1 例子1 让我们看一些如何实现此目的的示例。 db.Employee.find({EmployeeName : "Smith"}).forEach(printjson); 代码说明: 1....我们要在集合中查找名称为“ Smith”的Employee,因此我们将过滤条件输入为EmployeeName:“ Smith” 命令执行成功,将显示以下输出结果: ?...下面的例子,在我们的集合中有3个文档,光标对象将指向第一个文档,然后遍历该集合的所有文档。 ? 下面的例子,告诉我们如何完成此操作。

    2.1K30

    企业文档爆炸,如何管?

    企业的任何工作流程都离不开文档管理,并且文档管理也是企业数字化转型中的重要环节。...所以本文主要探讨的就是与企业文档息息相关的文档管理产品,了解产品的主要类型以及现有产品的特征,以此来把握文档管理的需求及其产品的发展方向。...面对复杂的业务流程、频繁的文档编辑任务和跨区域的文件共享需求,优秀的文档管理体系能够帮助企业实现安全的文档存储,高效的文档搜索,便捷的文档协作和有效的文档权限、版本、行为管控。...文档管理产品类型 由于文档管理产品在物理设施上可以下探到文件存储方式,在功能上是协同办公的重要环节,同时又能与线下的纸质文件、档案的管理相结合,文档管理领域玩家众多,且各个产品切入文档管理市场的角度各不相同...然而,大多数企业数字化变革的核心在于如何实现设备的自动化、生产的数字化,却忽略了对企业生产运营管理中产生的各类文档进行数字化管理。 由此观之,文档管理对于企业来说非常重要,需要企业重视起来。

    53020

    如何通过文档管理软件对文档进行管控

    要是你想摸索一下文件权限的梗,那么,就让咱们一起来看看如何通过TeamDoc文档管理软件轻松搞定文档的权限设置吧!一、首先,先让我们来看看什么是TeamDoc文档管理软件?...TeamDoc是一款功能强大的文档管理软件,它可以协助个人、小型团队和大型组织有效管理和共享文件。软件具有灵活的权限设置功能,使您能够精确控制谁可以访问、编辑和分享您的文件。...您可以设置权限,例如:此文档可查看可编辑,可查看不可编辑,可编辑不可拷贝,可编辑可拷贝,是否可打印,是否可删除等。三、设置文件权限的步骤:登录到TeamDoc:首先,登录到TeamDoc文档管理软件。...拷贝权限:选择谁可以将文档进行拷贝。打印权限:选择谁可以将文档进行打印。在TeamDoc文档管理软件中,您可以根据具体需求和文件类型设置不同的权限。...TeamDoc文档管理软件可以助您轻松实现文件权限控制。通过这些权限设置,您可以有效保护和管理您的文件,提高工作效率,同时满足合规性要求。

    40510

    技术文档应该如何编写

    衡量文档的标准也是如此。 # 文档编写的要点 切记,编写文档的目的是为了让读者可以快速有效地获取他想知道的信息。 要简单、清晰、明了。不要为了凑字数而堆字数。 明确文档面向的读者和受众。...文档也是一样,不同文档需要包含的元素、标题和部分也有所不同。然后当你熟悉 后,可灵活安排文档的内容,以最为恰当的结构形式来表达。 排版与图片。...很多技术人员觉得编写文档比写代码还要难,还要头疼。其实写文档和写代码是类似的,很难一开始就写出完美的文档。应该是像写代码一样,一开始写得很丑陋,但没关系,至少有内容了。...然后,可以不断重构文档,对缺少的信息补全,对多余的信息进行删除。最后觉得内容上OK的话,就可以再进行排版和修饰,补充一些图片。慢慢的,在通过用心花时间后,你的完美文档就慢慢出来了。 责任心。...# 参考资料 如何写好技术文档? (opens new window) 程序员如何编写高大上且实用的技术文档 (opens new window)

    91820

    信息检索中过滤禁止文档的新方法

    在某国际学术会议上,某机构的智能购物研究团队发表了一篇关于存在禁止文档时的信息检索(IR)论文。重点在于同时优化两个需求:检索与客户请求相关的内容,并过滤掉禁止文档。...例如,考虑一个社区问答(CQA)网站上提出的问题,目标是按答案质量和相关性进行排名,同时过滤掉不良答案。虽然有些答案是有帮助的或至少是公平的,但有些答案不应向用户展示,因为它们严重损害搜索体验。...过滤算法的挑战过滤算法容易出现两类错误:(1)误报(即过滤非禁止文档)和(2)漏报(即在结果中包含禁止文档)。通常,排名质量和过滤准确性是独立测量的。...然而,过滤后排名列表中剩余的禁止文档数量及其排名位置严重影响排名分数和过滤分数。因此,需要在做出过滤决策时评估系统的排名质量。...模型构建建立相关指标后,论文将重点转向联合学习排名和过滤(LTRF)。假设一个LTRF模型优化搜索结果的排名,同时调整过滤阈值,使得任何分数低于此阈值的文档都被过滤掉。

    15810

    如何实现文档检索(下)

    MongoDB limit查询结果 此修饰符用于限制查询结果集中返回的文档数。下面的例子展示了如何完成此操作。...MongoDB按降序排序 可以根据集合中任何键的升序或降序指定要返回的文档的顺序。看一下这个例子。...这里的-1表示我们要根据Employee id的降序返回文档。 命令执行成功,结果如下: ? 这里清楚地显示了按Employeeid降序返回的文档。 值为1则按照升序。...db.Employee.count() 代码说明: 上面的代码执行计数功能。 命令执行成功,将显示以下输出结果如下: ? 输出清楚地表明集合中有4个文档。...如果仅发出remove命令,则所有文档将从集合中删除。 下面的代码示例演示如何从集合中删除特定文档。

    3K10

    如何写好技术文档?

    在整个职业生涯中,每个软件工程师都抱怨过文档的质量、数量或者完全缺乏文档。 01 为什么需要写文档? 高质量文档对工程组织有巨大的好处。代码和api变得更容易理解。...04 文档类型 作为工作的一部分,工程师会编写各种不同类型的文档:设计文档、代码注释、操作文档、项目页面等等。这些都可以算作文档。但重要的是要知道不同的类型,不要混合类型。...软件工程师经常需要编写几种主要类型的文档: 参考文档,包括注释 设计文档; 教程; 概念性文档; 1.参考文档 参考文档是工程师最常编写的文档类型;事实上,他们经常需要每天写一些参考文档。...概念性文档处理可能是API的库概述、描述服务器中数据生命周期的文档等。概念性文档是用来扩充而不是替换参考文档集的。...概念文档是最难编写的文档形式。因此,它们通常是软件工程师工具箱中最容易被忽视的文档类型。

    3.5K20
    领券