Elasticsearch聚合问题

在测试Elasticsearch聚合的时候报了一个错误。具体如下:

GET /megacorp/employee/_search
{
  "aggs": {
    "all_interests": {
      "terms": { "field": "interests" }
    }
  }
}

报错信息

{
  "error": {
    "root_cause": [
      {
        "type": "illegal_argument_exception",
        "reason": "Fielddata is disabled on text fields by default. Set fielddata=true on [interests] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory. Alternatively use a keyword field instead."
      }
    ],
    "type": "search_phase_execution_exception",
    "reason": "all shards failed",
    "phase": "query",
    "grouped": true,
    "failed_shards": [
      {
        "shard": 0,
        "index": "megacorp",
        "node": "wlvuJ0f_SsCxys6ZW5j7eA",
        "reason": {
          "type": "illegal_argument_exception",
          "reason": "Fielddata is disabled on text fields by default. Set fielddata=true on [interests] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory. Alternatively use a keyword field instead."
        }
      }
    ]
  },
  "status": 400
}

解决方案:

1、ElasticSearch5.x的解决方法是这样开启fielddata的:

PUT /megacorp/_mapping/employee
{
  "properties": {
    "interests": {
      "type": "text",
      "fielddata": true
    }
  }
}

2、版本为ElasticSearch6.x或者7.x时开启fielddata的:

PUT /megacorp/_mapping
{
  "properties": {
    "interests": {
      "type": "text",
      "fielddata": true
    }
  }
}

原文地址:https://www.cnblogs.com/liugp/p/11374524.html

时间: 2024-08-26 07:50:56

Elasticsearch聚合问题的相关文章

[Elasticsearch] 聚合中的重要概念 - Buckets(桶)及Metrics(指标)

[Elasticsearch] 聚合中的重要概念 - Buckets(桶)及Metrics(指标) 2015-01-04 来源: http://blog.csdn.net/dm_vincent/article/details/42387161 本章翻译自Elasticsearch官方指南的Aggregations-High-level Concepts一章. 高层概念(High-Level Concepts) 和查询DSL一样,聚合(Aggregations)也拥有一种可组合(Composabl

ElasticSearch聚合分析

聚合用于分析查询结果集的统计指标,我们以观看日志分析为例,介绍各种常用的ElasticSearch聚合操作. 目录: 查询用户观看视频数和观看时长 聚合分页器 查询视频uv 单个视频uv 批量查询视频uv Having查询 根据 count 进行过滤 根据其它指标进行过滤 首先展示一下我们要分析的文档结构: { "video_id": 1289643545120062253, // 视频id "video_uid": 3931482202390368051, //

Elasticsearch聚合 之 Range区间聚合

Elasticsearch提供了多种聚合方式,能帮助用户快速的进行信息统计与分类,本篇主要讲解下如何使用Range区间聚合. 最简单的例子,想要统计一个班级考试60分以下.60到80分.80到100分,在ES中只要一个命令就可以轻松统计.... 更多资料参考:Elasticsearch文档翻译 聚合例子 按照前言中的例子,可以执行下面的命令: { "aggs":{ "grade_ranges":{ "range":{ "field&qu

[Elasticsearch] 聚合 - 时间数据处理(Looking at Time)

本章翻译自Elasticsearch官方指南的Looking at Time一章. 时间数据处理(Looking at Time) 如果在ES中,搜索是最常见的行为,那么创建日期柱状图(Date Histogram)肯定是第二常见的.为什么要使用日期柱状图呢? 想象在你的数据中有一个时间戳.数据是什么不重要-Apache日志事件,股票交易日期,棒球比赛时间-任何拥有时间戳的数据都能通过日期柱状图受益.当你有时间戳时,你经常会想创建基于时间的指标信息: 今年的每个月销售了多少辆车? 过去的12小时

elasticsearch聚合操作——本质就是针对搜索后的结果进行group by,统计下分组结果,包括min/max/avg

分析 最后,我们还有一个需求需要完成:允许管理者在职员目录中进行一些分析. Elasticsearch有一个功能叫做聚合(aggregations),它允许你在数据上生成复杂的分析统计.它很像SQL中的GROUP BY但是功能更强大. + 举个例子,让我们找到所有职员中最大的共同点(兴趣爱好)是什么: GET /megacorp/employee/_search { "aggs": { "all_interests": { "terms": {

[Elasticsearch] 聚合的测试数据

本章翻译自Elasticsearch官方指南的Aggregation Test-Drive一章. 聚合的测试数据(Aggregation Test-Drive) 我们将学习各种聚合以及它们的语法,但是最好的学习方法还是通过例子.一旦你了解了如何思考聚合以及如何对它们进行合适的嵌套,那么语法本身是不难的. 让我们从一个例子开始.我们会建立一个也许对汽车交易商有所用处的聚合.数据是关于汽车交易的:汽车型号,制造商,销售价格,销售时间以及一些其他的相关数据. 首先,通过批量索引(Bulk-Index)

Elasticsearch聚合限制内存使用

限制内存使用 通常为了让聚合(或者任何需要访问字段值的请求)能够快点,访问fielddata一定会快点, 这就是为什么加载到内存的原因.但是加载太多的数据到内存会导致垃圾回收(gc)缓慢, 因为JVM试着发现堆里面的额外空间,甚至导致OutOfMemory异常. 最让你吃惊的是,你会发现Elaticsearch不是只把符合你的查询的值加载到fielddata. 而是把index里的所document都加载到内存,甚至是不同的 _type 的document. 逻辑是这样的,如果你在这个查询需要访

[Elasticsearch] 聚合中的重要概念 - Buckets(桶)及Metrics(zh)

本章翻译自Elasticsearch官方指南的Aggregations-High-level Concepts一章. 高层概念(High-Level Concepts) 和查询DSL一样,聚合(Aggregations)也拥有一种可组合(Composable)的语法:独立的功能单元可以被混合在一起来满足你的需求.这意味着需要学习的基本概念虽然不多,但是它们的组合方式是几近无穷的. 为了掌握聚合,你只需要了解两个主要概念: Buckets(桶): 满足某个条件的文档集合. Metrics(指标):

Elasticsearch聚合--Metrics初探

Elasticsearch是一款提供检索以及相关度排序的开源框架,同时,也支持对存储的文档进行复杂的的统计-聚合.kubana的图标就是基于聚合来绘制的.更多内容请参考Elasticsearch+Logstash+Kibana教程 前言 ES中的聚合被分成两大类:Metrics度量和bucket桶,metrics类似于SQL中的avg.max.min等方法,而bucket类似于group by了. 本篇就简单的介绍一下metrics的用法. metrics的聚合按照值的返回类型可以分为两种:单值