首先看聚合查询写的代码

聚合查询 使用的是tags这个字段分组查询,使用term查询。
term查询的话必须查询的字段是keyword类型,而且在java代码后面需要加入.keyword。
text是全文检索,会分词,而keyword不分词查询。

然后在对应字体加入fielddata=true。

ElasticSearch 5.0以后,string类型有重大变更,移除了string类型,string字段被拆分成两种新的数据类型: text用于全文搜索的,而keyword用于关键词搜索。

ElasticSearch字符串将默认被同时映射成text和keyword类型,将会自动创建下面的动态映射(dynamic mappings):

{"foo": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}}}

这就是造成部分字段还会自动生成一个与之对应的“.keyword”字段的原因。
Text vs. keyword
Text:会分词,然后进行索引

   支持模糊、精确查询不支持聚合

keyword:不进行分词,直接索引

   支持模糊、精确查询支持聚合
java.lang.IllegalArgumentException: 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.

在做聚合时,尝试用text类型的字段做排序,text是需要分词的,分词的话首先字典很大,其次排序是对字典里的词进行排序而不是text类型的词,所以从es5开始就将text类型的字段的fielddata默认设置为false
聚合这些操作用单独的数据结构(fielddata)缓存到内存里了,需要单独开启

ES使用聚合查询报错exception [type=search_phase_execution_exception, reason=all shards failed]相关推荐

  1. 解决Elasticsearch报错:exception [type=search_phase_execution_exception, reason=all shards failed]

    关于exception [type=search_phase_execution_exception, reason=all shards failed]这个es错误我是如何解决的! 由于服务器性能不 ...

  2. [Elasticsearch exception [type=search_phase_execution_exception, reason=all shards failed]]

    现象 在做某一次用到elasticsearch的地位位置搜索时,报错: ElasticsearchStatusException[Elasticsearch exception [type=searc ...

  3. ES时间查询报错 - “caused_by“:{“type“:“illegal_argument_exception“,“reason“:“failed to parse date field

    项目场景: 在ES的使用过程中,用到了时间范围的查询功能,出现时间解析错误的报错信息:"caused_by":{"type":"illegal_arg ...

  4. ES/ElasticSearch 聚合查询时报错:too_many_buckets_exception

    环境:ElasticSearch6.7 问题描述: {"error": {"root_cause": [],"type": "se ...

  5. [Elasticsearch] es 6.8 编译报错 invalid type code: 85

    1.概述 2.环境如下 Elasticsearch Build Hamster says Hello!Gradle Version : 5.4.1OS Info : Mac OS X 10.15.7 ...

  6. mybatis查询报错:com.mysql.cj.exceptions.DataConversionException: Cannot determine value type from string

    mybatis查询报错: com.mysql.cj.exceptions.DataConversionException: Cannot determine value type from strin ...

  7. SAP WM初阶LQ02报错 - Movement Type 901 for manual transfer orders does not exist -

    SAP WM初阶LQ02报错 - Movement Type 901 for manual transfer orders does not exist - SAP WM模块里的事务代码LQ02很有用 ...

  8. MySQL视图查询报错:Prepared statement needs to be re-prepared

    From: https://www.ywnds.com/?p=12609 今天公司的项目视图查询报错,报错如:ERROR 1615 (HY000): Prepared statement needs ...

  9. DB2单表排序查询报错分析及解决办法

    墨墨导读:客户DB2环境对单表的排序查询报错SQL1585N,本文模拟此报错并进行说明. 1. 报错如下 SQL1585N A temporary table could not be created ...

最新文章

  1. 西湖大学生命科学学院杨剑教授实验室招聘启事
  2. Python中的常见面试题
  3. matlab2012b帮助中字体大小调整
  4. Kaggle : Using a Convolutional Neural Network for classifying Cats vs Dogs
  5. C#皮肤之IrisSkin4.dll
  6. [置顶] C#中通过调用webService获取上网IP地址的区域的方法
  7. MSSQL-最佳实践-如何监控备份还原进度
  8. python的包文件叫什么_python之包和文件目录规范
  9. Day1 - Python基础1
  10. SAP License:结算金额大于可支配金额
  11. python-day74--知识总体总结
  12. 2层框架结构柱子间距_钢筋混凝土楼板层其施工方法有哪些不同
  13. MySQL的启动和停止
  14. 工作 3 年和读研 3 年哪个更值?
  15. 计算机telnet命令大全,telnet 命令使用方法详解,telnet命令怎么用
  16. 查看 Python 内置函数的方法
  17. scintilla 中的代码折叠功能的使用
  18. vue执行mounted_vue mounted方法执行多次问题的解决方案
  19. 三、C语言常用的库函数
  20. linux目录或文件颜色

热门文章

  1. 基于OpenCASCADE自制三维建模软件(四)实现三维显示界面
  2. 进销存管理对于企业的意义
  3. N-Gram 分词算法 Python 实现
  4. html密码验证怎么实现页面,JavaScript实现简单的密码验证
  5. VS2017安装P4VS插件 设置连接到Perforce P4V
  6. 电脑版微信双开多开的方法
  7. AI人工智能与机器人的探索和应用1.1
  8. 了解JESD204B规范的各层—— 从高速ADC的角度出发
  9. Docker镜像存储位置修改
  10. 推荐清晖的一套不错的系列讲解ITIL的教程