自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(167)
  • 资源 (1)
  • 收藏
  • 关注

原创 【Elasticsearch】指标聚合概述

*功能**:计算指定笛卡尔坐标字段的边界框。**功能**:计算指定笛卡尔坐标字段的中心点。**功能**:生成指定字段的箱线图统计数据。**功能**:计算指定字段的中位数绝对偏差。**功能**:提供指定字段的扩展统计信息。**功能**:生成指定地理字段的线段路径。**功能**:计算指定字段的矩阵统计信息。**功能**:计算指定字段的唯一值数量。**功能**:计算指定地理字段的边界框。**功能**:计算指定地理字段的中心点。**功能**:计算指定字段的平均值。**功能**:计算指定字段的最大值。

2025-02-07 18:37:07 607

原创 【Elasticsearch】分桶聚合功能概述

按照聚合功能是否涉及单个桶(Single Bucket)或多个桶(Multi-Bucket)进行分类,可以将这些聚合功能分为两大类。单桶聚合主要用于对整个数据集或特定子集进行全局统计,而多桶聚合则用于将数据划分到多个桶中进行分组统计。• 多桶聚合:用于将数据划分到多个桶中进行分组统计,适合对数据进行更细粒度的分析,例如按时间、数值范围或类别进行分组。• 单桶聚合:主要用于全局统计,不涉及分组,适合对整个数据集或特定子集进行简单统计。• 作用:使用Geohash算法将地理区域划分为网格,并统计网格内的数据。

2025-02-07 13:59:33 360

原创 【Elasticsearch】significant_terms聚合

3. **比较**:Elasticsearch 会将这些文章中的术语频率与整个索引中的术语频率进行比较,以确定哪些术语在带有 "technology" 标签的文章中出现得更频繁,从而认为这些术语是显著的。2. **聚合**:`"significant_terms": { "field": "content.keyword", "size": 10 }` 这个聚合将在这部分文章中找出最显著的10个词汇。- **内存使用**:不同的 `execution_hint` 策略对内存的影响不同。

2025-02-07 11:51:32 479

原创 【Elasticsearch】rare_terms聚合

rare。

2025-02-07 08:43:29 67

原创 【Elasticsearch】无限制的误差unbounded error

Elasticsearch的`terms`聚合默认是按文档计数降序排序的,这种情况下,Elasticsearch可以计算出每个桶(bucket)的文档计数误差上限(`doc_count_error_upper_bound`)。在Elasticsearch中,`terms`聚合的“无限制的误差”(unbounded error)是指当聚合结果按文档计数(`doc_count`)升序排序时,无法准确计算聚合结果的误差范围。如果需要查找稀有词,可以使用`rare_terms`聚合,它专门用于处理稀有词的场景。

2025-02-07 08:42:46 99

原创 【Elasticsearch】range aggregation

Elasticsearch 的Range Aggregation是一种强大的桶聚合(Bucket Aggregation)工具,用于将文档按照数值范围进行分组,从而实现对数据的分段分析。Range Aggregation 可以与其他聚合(如`stats`或`avg`)结合使用,以进一步分析每个范围内的数据。• 包含`from`值,不包含`to`值:每个范围的下限(`from`)是包含的,而上限(`to`)是不包含的。• `ranges`:定义一组范围,每个范围可以指定`from`和`to`。

2025-02-06 17:16:48 922

原创 【Elasticsearch】random_sampler聚合

样本集是通过使用几何分布(`(1-p)^(k-1)*p`)跳过文档生成的,其中成功概率是提供的`probability`(分布方程中的`p`)。例如,当`"probability": 0.01`时,预期的失败次数(或平均跳过的文档数量)为`99`,方差为`9900`。因此,如果某个桶的`doc_count`为`10,000`,`probability`为`0.1`,那么实际聚合的文档数量为`1,000`。在上图中,`p`是提供给聚合的概率,`n`是由提供的查询匹配到的文档数量。概率越低,匹配的文档就越少。

2025-02-06 17:06:50 482

原创 【Elasticsearch】parent aggregation

answer`文档通过`join`字段与`question`文档关联。在Elasticsearch中,`Parent Aggregation`是一种特殊的单桶聚合,用于选择具有指定类型的父文档,这些类型是通过一个`join`字段定义的。通过`Parent Aggregation`,可以有效地将子文档的聚合结果映射到父文档上,从而实现复杂的跨文档类型的聚合操作。• 子聚合:可以在`Parent Aggregation`中嵌套其他聚合操作,例如`terms`、`avg`等。

2025-02-06 16:28:58 269

原创 【Elasticsearch】nested聚合

以下是一个具体的嵌套聚合示例,假设我们有一个产品索引`products`,其中包含一个嵌套字段`resellers`,每个`reseller`有`reseller`(经销商名称)和`price`(价格)两个字段。子聚合可以是任何类型的聚合(如`min`、`max`、`avg`、`terms`等),用于对嵌套文档进行进一步的分析。• 指定嵌套字段的路径。• 子聚合的类型,例如`min`、`max`、`avg`、`terms`等。• `path`:指定嵌套字段的路径为`resellers`。

2025-02-06 16:01:04 537

原创 【Elasticsearch】multi terms aggregation

在Elasticsearch中,`multi terms aggregation`和`composite aggregation`都可以用于对多个字段进行聚合,但它们在实现方式、性能、灵活性和适用场景上存在一些差异。• 支持多种聚合类型(如`terms`、`histogram`、`date_histogram`、`geotile_grid`等),可以组合不同类型的数据源。• 通过`sources`参数定义多个字段的聚合规则,支持多种类型的聚合(如`terms`、`histogram`等)。

2025-02-06 15:21:57 379

原创 【Elasticsearch】terms聚合

• 如果需要对`text`字段进行聚合,可以启用`fielddata`,但会增加内存使用。• 提供文档计数误差上限(`doc_count_error_upper_bound`)。• 支持显示术语文档计数误差(`show_term_doc_count_error`)。• 默认不支持对`text`字段进行术语聚合,建议使用`keyword`子字段。• 增加`size`和`shard_size`参数会增加内存和网络开销。• 使用正则表达式(`include`和`exclude`)过滤术语。

2025-02-06 14:54:00 350

原创 【Elasticsearch】全局序号global ordinal

global ordinal

2025-02-06 14:30:20 153

原创 【Elasticsearch】terms聚合误差问题

虽然增加`shard_size`可以提高聚合的准确性,但仍然无法完全消除误差,尤其是在数据分布非常不均匀的情况下。1. 合理设置`size`和`shard_size`:根据数据量和唯一值的数量,适当增加`size`和`shard_size`的值,以提高聚合的准确性。4. 使用更精确的聚合:对于需要高精度的聚合操作,可以考虑使用更精确的聚合算法,如`scripted_metric`聚合。• 遗漏重要术语:如果`size`和`shard_size`设置不当,某些重要的术语可能会被遗漏。1.分片数据的局部性。

2025-02-06 08:46:57 238

原创 【Elasticsearch】ip_prefix聚合

ip_prefix`聚合是一种桶聚合(bucket aggregation),它根据 IP 地址的网络前缀将文档分组到不同的桶中。通过指定前缀长度(`prefix_length`),可以将 IP 地址分组到不同的子网络中。在 Elasticsearch 中,`ip_prefix`是一种聚合(aggregation)功能,用于基于 IP 地址的网络前缀对文档进行分组和分析。• 索引设计:确保 IP 地址字段的映射类型为`ip`,以支持聚合。要聚合的文档 IP 地址字段,字段的映射类型必须是`ip`。

2025-02-06 06:58:01 636

原创 【Elasticsearch】Histogram aggregation

直方图。

2025-02-06 06:57:36 101

原创 【Elasticsearch】refresh参数

POST /my_index/_refresh

2025-02-06 06:56:59 85

原创 【Elasticsearch】Global 聚合

7. 总结全局聚合是 Elasticsearch 中一个非常强大的工具,它允许你在执行特定查询的同时,对整个数据集进行统计分析。通过合理使用全局聚合,可以实现多维度的数据分析,帮助你更好地理解数据的整体情况和特定条件下的差异。希望这些内容能帮助你更好地理解和使用 Elasticsearch 中的全局聚合!

2025-02-06 06:56:40 192

原创 【Elasticsearch】geotile grid聚合

geotile_grid`聚合是 Elasticsearch 中一种用于处理地理数据的多桶聚合方式,它将`geo_point`和`geo_shape`类型的值分组到表示网格的桶中。• `field`:指定包含地理点或地理形状值的字段,必须显式映射为`geo_point`或`geo_shape`类型。• 数据类型支持:`geotile_grid`聚合支持对`geo_point`和`geo_shape`字段进行聚合。• `precision`:指定网格的精度,值越大,网格单元越小,精度越高。

2025-02-06 06:56:02 202

原创 【Elasticsearch】ip range 聚合

在 Elasticsearch 的 IP 范围聚合中,`mask`参数用于定义 IP 地址范围,它基于 CIDR(无类别域间路由)表示法来指定网络前缀和子网掩码。• `10.0.0.128/25`表示网络前缀为`10.0.0.128`,掩码长度为 25 位,覆盖从`10.0.0.128`到`10.0.0.255`的地址范围。• `10.0.0.0/24`表示网络前缀为`10.0.0.0`,掩码长度为 24 位,覆盖从`10.0.0.0`到`10.0.0.255`的地址范围。为什么使用`mask`

2025-02-06 06:55:46 311

原创 【Elasticsearch】missing聚合统计

统计索引中某字段是空值的文档个数。

2025-02-06 06:55:29 54

原创 【Elasticsearch】geohex grid聚合

在 Elasticsearch 中,地理边界过滤是一种用于筛选地理数据的技术,它可以根据指定的地理边界形状(如矩形、多边形等)来过滤符合条件的文档。地理边界过滤是 Elasticsearch 中一种强大的地理数据筛选技术,它可以根据用户定义的地理边界来筛选符合条件的文档。地理边界过滤允许用户定义一个地理边界(如矩形、多边形或复杂的地理形状),并仅返回那些与该边界相交或完全包含在其中的地理数据。这种过滤方式可以用于`geo_point`和`geo_shape`类型的字段。常见的地理边界过滤类型。

2025-02-05 17:22:26 560

原创 【Elasticsearch】Geohash聚合

聚合。

2025-02-05 17:08:54 90

原创 【Elasticsearch】post_filter

这意味着所有与查询匹配的文档都会被检索出来,然后`post_filter`会对这些文档进行额外的过滤操作,以满足特定的条件。• 结合聚合操作:在进行聚合操作后,使用`post_filter`对聚合结果进行过滤。• 复杂查询优化:当需要对大量数据进行复杂查询时,`post_filter`可以在不牺牲查询性能的前提下,对结果进行精细化的控制。• 性能优势:与查询阶段的过滤器不同,`post_filter`不会影响查询阶段的性能,因为它是在查询完成后对结果进行过滤。

2025-02-05 16:51:43 351

原创 【Elasticsearch】Geo-distance聚合

q。

2025-02-05 16:48:49 196

原创 【Elasticsearch】Frequent item sets aggregation

在Elasticsearch的`Frequent item sets aggregation`中,项集(Item Set)和支持度(Support)是两个核心概念,用于分析数据中频繁出现的项目组合及其频率。• 如果一个项集`["Women's Clothing", "Women's Shoes"]`出现在217个文档中,总文档数量为4676,则支持度为`217 / 4676 ≈ 0.0464`。• 每个项集的`support`值表示其在数据中的频率。• 在日志分析中,项集可以是经常一起出现的日志事件。

2025-02-05 16:20:49 775

原创 【Elasticsearch】Filters聚合

通过`other_bucket`和`keyed`参数,可以灵活地控制返回结果的格式和内容。可以通过`other_bucket`参数添加一个“其他”桶,捕获不匹配任何过滤条件的文档。• `<query>`:Elasticsearch查询语句,用于定义桶的过滤条件。• `warnings`桶:匹配“warning”的文档数量为2。• `filters`:聚合类型,固定为`filters`。• `<bucket_key>`:桶的名称,用户自定义。• `errors`和`warnings`:桶的名称。

2025-02-05 15:45:49 843

原创 【Elasticsearch】filter聚合

• 性能优化:使用顶级`query`限制所有聚合操作的文档集合,或使用`filters`聚合对多个过滤条件进行分组分析,可以提高性能。• `<sub_aggregation_type>`:子聚合的类型(如`avg`、`sum`、`max`等)。• Filter聚合通过一个查询(如`term`、`range`、`bool`等)来定义过滤条件。• `<query>`:定义过滤条件的查询类型(如`term`、`range`等)。• Filter聚合可以包含子聚合,这些子聚合仅对过滤后的文档集合进行计算。

2025-02-05 15:32:43 858

原创 【Elasticsearch】diversified sampler

作用就是聚合前的采样,主要是采样 它就是用来采样的,采完样后在进行聚合操作。

2025-02-05 15:23:52 144

原创 【Elasticsearch】date range聚合

假设你有一个日志索引`logs`,其中的`timestamp`字段记录了日志的时间戳(以 UTC 存储)。例如,如果你的数据存储在 UTC,但需要按用户所在时区进行分析,可以使用`time_zone`参数。确保`from`和`to`的日期格式与`format`参数一致。虽然`date_range`聚合在 Elasticsearch 中是高效的,但在处理大量数据时,仍需注意性能影响。`date_range`聚合非常适合按时间段分析数据,例如按月、按季度或按年分析销售数据、用户活动等。

2025-02-05 14:12:16 550

原创 【Elasticsearch】 日期直方图聚合(`date_histogram`)

例如,对于时间`2022-11-29 23:59:59`,在时区`+08:00`下,以`1d`为单位聚合时,最终计算出的桶键为`2022-11-30 00:00:00`。• 如果数据量很大,建议使用`min_doc_count`参数过滤掉文档数量较少的桶,以减少返回结果的数量,提高查询性能。这种间隔会考虑夏令时等因素。• `extended_bounds`:扩展桶的范围,即使某些时间间隔内没有数据,也会生成空桶。• `time_zone`:指定时区,确保桶的划分基于特定的时区,而不是默认的 UTC。

2025-02-05 13:51:25 720

原创 【Elasticsearch】 Composite Aggregation 详解

它与传统的聚合方式不同,采用了基于游标的分页模型。通过 Composite Aggregation,我们可以高效地实现分页聚合查询,避免了传统分页方法(如`from + size`)在大规模数据下的性能瓶颈。3. 禁用`track_total_hits`:在分页查询中,通常不需要统计总命中数,可以通过设置`track_total_hits: false`来节省资源。Composite Aggregation 支持对每个值源进行排序,可以通过设置`order`参数为`asc`(升序)或`desc`(降序)。

2025-02-05 13:38:14 592

原创 【Elasticsearch】单桶聚合与多桶聚合的区别

根据聚合的结果形式,聚合可以分为 **单桶聚合** 和 **多桶聚合**。| **常见聚合类型** | `filter`、`global`、`nested` | `terms`、`range`、`date_histogram` |这里 `terms` 聚合会根据 `genre` 字段的值生成多个桶,每个桶代表一个不同的 `genre`。- **`nested` 聚合**:用于处理嵌套类型的字段,生成一个包含嵌套文档的桶。- **`terms` 聚合**:根据字段的值分组,生成多个桶。

2025-02-05 10:35:45 723

原创 【Elasticsearch】文本分类聚合Categorize Text Aggregation

"\\w+\\_\\d{3}", // 过滤掉类似 "foo_123" 的模式。"ERROR:.*" // 过滤掉以 "ERROR:" 开头的日志。

2025-02-05 10:00:56 330

原创 【Elasticsearch】`auto_date_histogram`聚合功能详解

与传统的`date_histogram`不同,`auto_date_histogram`不需要用户手动指定时间间隔,而是根据数据自动选择最佳间隔。• `minimum_interval`:设置最小间隔,可选值包括`year`、`month`、`day`、`hour`、`minute`、`second`。• `time_zone`:指定时区,支持 ISO 8601 UTC 偏移量(如`+01:00`)或时区 ID(如`America/New_York`)。• `field`:指定用于聚合的日期字段。

2025-02-05 09:38:13 925

原创 【Elasticsearch】 邻接矩阵聚合(Adjacency Matrix Aggregation)

每个过滤器可以是一个简单的查询,例如`term`、`terms`或`range`查询,用于筛选满足特定条件的文档。键是过滤器名称的组合,例如`A&B`。例如,如果有过滤器`A`和`B`,它会计算同时满足`A`和`B`的文档数量。• `grpA`:匹配`accounts`字段中包含`hillary`或`sidney`的文档。• `grpC`:匹配`accounts`字段中包含`vladimir`或`nigel`的文档。• `grpB`:匹配`accounts`字段中包含`donald`或`mitt`的文档。

2025-02-05 09:19:18 761

原创 【Elasticsearch】allow_no_indices

如果发送一个请求,目标索引为 `foo*,bar*`,并且 `allow_no_indices` 设置为 `false`,Elasticsearch 会检查 `foo*` 和 `bar*` 的匹配情况。由于 `foo*` 匹配到 `foo1` 和 `foo2`(存在且开放),但 `bar*` 没有匹配到任何存在的开放索引,因此请求会返回错误。例如,如果一个请求针对 `foo*,bar*`,当存在以 `foo` 开头的索引但没有以 `bar` 开头的索引时,请求将返回错误。

2025-02-03 10:26:06 1103

原创 【Elasticsearch】_all 查询

用途_all查询允许您在多个索引或数据流中进行搜索,而无需指定具体的索引名称。这在处理多个索引时非常方便,尤其是在动态索引或索引模式较多的场景中。语法_all查询可以通过 REST API 的路径参数或请求体中指定。它支持多种查询方式,包括简单的查询字符串查询和复杂的查询 DSL。_all查询是 Elasticsearch 提供的一种灵活的搜索方式,特别适用于需要在多个索引中进行搜索的场景。然而,由于其可能会对性能产生影响,建议在实际使用中根据具体需求合理选择索引范围。

2025-02-02 22:21:27 540

原创 Elasticsearch 指南 [8.17] | Search APIs

(可选,整数)定义一个阈值,如果搜索请求扩展到的分片数量超过此阈值,则强制执行预过滤往返以基于查询重写预过滤搜索分片。如果例如分片不能匹配任何文档(基于其重写方法,例如,如果日期过滤器是强制匹配的,但分片边界和查询不相交),则此过滤往返可以显著减少分片数量。但是,如果在大量命中的结果上使用计算成本高昂的命名查询,则可能会增加显著的开销。如果在多个选定的节点上存在合适的分片,则使用默认方法在这些节点上使用分片。(可选,字符串)要作为每个命中的字段的 docvalue 表示形式返回的字段的逗号分隔列表。

2025-02-02 20:47:48 870

原创 搜索功能多模块展示如何实现

**统一索引**:使用搜索引擎(如 Elasticsearch、Solr、Algolia)将不同来源的数据构建成**统一的搜索索引**,每个模块对应不同的索引或文档类型。- **数据来源**:搜索功能需要整合多个数据模块(如商品、用户、文章、视频等),这些数据通常存储在**不同的数据库表、服务或系统**中。- **并行查询**:用户输入关键词后,后端同时向多个模块的索引发送查询请求(如商品、内容、用户)。- **选项卡切换**:用户可在不同模块间切换(如“全部”、“商品”、“视频”)。

2025-02-02 16:39:20 652

原创 【Elasticsearch】match_bool_prefix 查询 vs match_phrase_prefix 查询

假设您有以下文档:JSON复制查询匹配文档 1 和文档 3,因为术语可以以任意顺序出现。不匹配文档 2,因为 "brown fox quick" 不包含 "quick"。查询匹配文档 1 和文档 3,因为 "quick brown" 完全匹配,且 "feline" 以 "f" 开头。不匹配文档 2,因为术语的顺序不正确。通过合理选择和查询,您可以根据具体需求实现不同的搜索逻辑。

2025-01-31 20:32:23 1049

xampp配置.doc

xampp配置xampp配置xampp配置xampp配置xampp配置xampp配置xampp配置xampp配置xampp配置xampp配置xampp配置xampp配置xampp配置xampp配置

2018-04-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除