ES使用聚合查询报错exception [type=search_phase_execution_exception, reason=all shards failed]
首先看聚合查询写的代码
聚合查询 使用的是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]相关推荐
- 解决Elasticsearch报错:exception [type=search_phase_execution_exception, reason=all shards failed]
关于exception [type=search_phase_execution_exception, reason=all shards failed]这个es错误我是如何解决的! 由于服务器性能不 ...
- [Elasticsearch exception [type=search_phase_execution_exception, reason=all shards failed]]
现象 在做某一次用到elasticsearch的地位位置搜索时,报错: ElasticsearchStatusException[Elasticsearch exception [type=searc ...
- ES时间查询报错 - “caused_by“:{“type“:“illegal_argument_exception“,“reason“:“failed to parse date field
项目场景: 在ES的使用过程中,用到了时间范围的查询功能,出现时间解析错误的报错信息:"caused_by":{"type":"illegal_arg ...
- ES/ElasticSearch 聚合查询时报错:too_many_buckets_exception
环境:ElasticSearch6.7 问题描述: {"error": {"root_cause": [],"type": "se ...
- [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 ...
- mybatis查询报错:com.mysql.cj.exceptions.DataConversionException: Cannot determine value type from string
mybatis查询报错: com.mysql.cj.exceptions.DataConversionException: Cannot determine value type from strin ...
- 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很有用 ...
- MySQL视图查询报错:Prepared statement needs to be re-prepared
From: https://www.ywnds.com/?p=12609 今天公司的项目视图查询报错,报错如:ERROR 1615 (HY000): Prepared statement needs ...
- DB2单表排序查询报错分析及解决办法
墨墨导读:客户DB2环境对单表的排序查询报错SQL1585N,本文模拟此报错并进行说明. 1. 报错如下 SQL1585N A temporary table could not be created ...
最新文章
- 西湖大学生命科学学院杨剑教授实验室招聘启事
- Python中的常见面试题
- matlab2012b帮助中字体大小调整
- Kaggle : Using a Convolutional Neural Network for classifying Cats vs Dogs
- C#皮肤之IrisSkin4.dll
- [置顶] C#中通过调用webService获取上网IP地址的区域的方法
- MSSQL-最佳实践-如何监控备份还原进度
- python的包文件叫什么_python之包和文件目录规范
- Day1 - Python基础1
- SAP License:结算金额大于可支配金额
- python-day74--知识总体总结
- 2层框架结构柱子间距_钢筋混凝土楼板层其施工方法有哪些不同
- MySQL的启动和停止
- 工作 3 年和读研 3 年哪个更值?
- 计算机telnet命令大全,telnet 命令使用方法详解,telnet命令怎么用
- 查看 Python 内置函数的方法
- scintilla 中的代码折叠功能的使用
- vue执行mounted_vue mounted方法执行多次问题的解决方案
- 三、C语言常用的库函数
- linux目录或文件颜色