当前位置: 首页 > news >正文

网站建设公司内幕中企动力科技做什么的

网站建设公司内幕,中企动力科技做什么的,四川有什么好的网站建设公司,浙江建设信息港网站有同学问,nested查询效率不高为啥不直接扁平化查询呢?就跟之前的普通结构查询一样,这就有些想当然了,因为扁平化的结构在存储时,其实跟我们想的不一样,接下来给出扁平化在索引时的存储结构(尤其是当嵌套对象…

有同学问,nested查询效率不高为啥不直接扁平化查询呢?就跟之前的普通结构查询一样,这就有些想当然了,因为扁平化的结构在存储时,其实跟我们想的不一样,接下来给出扁平化在索引时的存储结构(尤其是当嵌套对象为数组时)

 

在 Elasticsearch 中,`nested`和`flattened`字段在索引时有显著的区别,这些区别主要体现在数据的存储方式、查询能力和性能上。以下是详细的对比:

---

1.数据存储方式

`nested`字段

• 存储方式:`nested`字段将数组中的每个对象作为独立的隐藏文档进行索引。每个嵌套对象可以独立于其他对象进行查询。

• 示例:

```json

  PUT my-index

  {

    "mappings": {

      "properties": {

        "comments": {

          "type": "nested",

          "properties": {

            "author": { "type": "text" },

            "content": { "type": "text" }

          }

        }

      }

    }

  }

 

  PUT my-index/_doc/1

  {

    "comments": [

      { "author": "Alice", "content": "Great post!" },

      { "author": "Bob", "content": "Very useful." }

    ]

  }

  ```

在内部,Elasticsearch 会将每个`comments`对象索引为独立的隐藏文档,类似于:

```json

  {

    "comments.author": ["Alice", "Bob"],

    "comments.content": ["Great post!", "Very useful."]

  }[
  {
    "author": "Alice",
    "content": "Great post!"
  },
  {
    "author": "Bob",
    "content": "Very useful."
  }
]

  ```

`flattened`字段

• 存储方式:`flattened`字段将整个对象扁平化为一个单一字段,所有键值对都被存储在一个字段中。这种方式适合简单的键值对数据,但不适合复杂的数据结构。

• 示例:

```json

  PUT my-index

  {

    "mappings": {

      "properties": {

        "comments": {

          "type": "flattened"

        }

      }

    }

  }

 

  PUT my-index/_doc/1

  {

    "comments": [

      { "author": "Alice", "content": "Great post!" },

      { "author": "Bob", "content": "Very useful." }

    ]

  }

  ```

在内部,Elasticsearch 会将`comments`扁平化为:

```json

  {

    "comments.author": ["Alice", "Bob"],

    "comments.content": ["Great post!", "Very useful."]

  }

  ```

2.查询能力

`nested`字段

• 查询方式:使用`nested`查询,可以独立查询数组中的每个对象。

• 示例:

```json

  GET my-index/_search

  {

    "query": {

      "nested": {

        "path": "comments",

        "query": {

          "bool": {

            "must": [

              { "match": { "comments.author": "Alice" }},

              { "match": { "comments.content": "Great post!" }}

            ]

          }

        }

      }

    }

  }

  ```

这个查询会匹配`author`为`Alice`且`content`为`Great post!`的评论。

`flattened`字段

• 查询方式:使用普通查询,但无法独立查询数组中的每个对象。

• 示例:

```json

  GET my-index/_search

  {

    "query": {

      "bool": {

        "must": [

          { "match": { "comments.author": "Alice" }},

          { "match": { "comments.content": "Great post!" }}

        ]

      }

    }

  }

  ```

这个查询会匹配包含`author`为`Alice`和`content`为`Great post!`的文档,但无法保证它们属于同一个评论对象。

3.性能

`nested`字段

• 性能:`nested`字段的查询性能通常比普通字段慢,因为每个嵌套对象都被索引为独立的隐藏文档。查询时需要额外的处理来匹配嵌套对象。

• 适用场景:适用于需要独立查询数组中的每个对象的场景。

`flattened`字段

• 性能:`flattened`字段的查询性能通常比`nested`字段高,因为数据结构更简单,索引和查询更高效。

• 适用场景:适用于简单的键值对数据,不需要复杂的查询。

4.总结

• `nested`字段:

• 优点:支持复杂的查询,可以独立查询数组中的每个对象。

• 缺点:查询性能较低,索引和查询更复杂。

• 适用场景:需要独立查询数组中的每个对象,或需要支持复杂的嵌套查询。

• `flattened`字段:

• 优点:查询性能高,索引和查询更简单。

• 缺点:不支持复杂的查询,无法独立查询数组中的每个对象。

• 适用场景:简单的键值对数据,不需要复杂的查询。

---

5.是否可以在索引时选择使用`nested`或`flattened`?

在索引时,你可以根据需求选择使用`nested`或`flattened`字段,但它们的存储方式和查询能力有显著区别。以下是选择的建议:

• 如果需要独立查询数组中的每个对象,或者需要支持复杂的嵌套查询,应使用`nested`字段。

• 如果数据结构简单,不需要复杂的查询,且需要更高的性能,应使用`flattened`字段。

总之,选择哪种字段类型取决于你的具体需求和数据结构。

 

http://www.dtcms.com/a/569804.html

相关文章:

  • AI代发货(DropShopping)革命:构建自动化电商帝国终极指南
  • 视频网站怎样做一元夺宝网站开发
  • 最近联系人-有点疑惑
  • RV1126 NO.37:OPENCV的图像叠加功能
  • 时序数据库系列(一):InfluxDB入门指南核心概念详解
  • 网站建设与维护工作电商网站开发prd
  • 东莞网站推广模式网站设计标杆企业
  • html 和css基础常用的标签和样式
  • 应用通知如何接入飞书
  • 英语做美食网站免费小程序平台
  • 电子学会青少年机器人技术(四级)等级考试试卷-理论综合(2025年9月)
  • C语言基于MPI并行计算矩阵的乘法
  • 2020年下半年网络规划设计师案例分析真题及答案解析
  • LaTeX 2025环境配置:texlive + TeXstudio
  • 工业物联网环境监测新趋势:解析一体化边缘智能节点的价值
  • 收企业做网站备案wordpress主题giligili
  • 经营网站需要什么费用电脑制作网站用哪个软件
  • CentOS 7 停更后如何配置 YUM 源?(Vault、EPEL、第三方镜像完整指南)
  • 东莞天助网的网站凡科官网登录
  • Freertos系统,将U盘里的updata.zip解压到当前的U盘,然后进行升级
  • 网站功能模块报价wordpress 图库主题
  • LIFT:基于低秩引导的稀疏微调
  • 贸易公司怎么做网站比较好凡科互动投票破解
  • 数据迁移工具之 DataX + DataX-Web(windows)
  • 帝国cms微信小程序 微信授权登录api接口
  • 地产公司做网站维护写代码么品牌网站建设最佳大蝌蚪
  • 工信部网站备案文件手机app免费下载
  • 南京专业网站设计公司价格佛山网站快速排名提升
  • css第一天
  • jquery 网站框架网站管理员在哪里