es~seq_no_primary_term问题的解决
seq_no_primary_term
这个错误在聚合操作时出现的问题,这个问题是由于es客户端的版本与服务端版本不兼容的问题
,例如:你的客户端是6.8.7,而es服务器版本是6.5.4,这时再进行topHits聚合操作时,就会出现这个错误。
es服务器版本
es客户端版本
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>6.8.7</version>
</dependency>
上面的代码可以看到,客户端与服务端的版本出现了不兼容的情况,这时客户端在进行topHits分组时,就会传seq_no_primary_term
参数 ,这时服务端不认这个参数 ,就出现了问题,解决方法很简单,就是降低客户端驱动版本即可。
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>6.5.4</version>
</dependency>
es聚合代码
BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
// 拼接查询条件
queryBuilder.should(QueryBuilders.termQuery("createUser", "1"));
// 创建聚合查询条件
TermsAggregationBuilder operateTypeAggBuilder = AggregationBuilders.terms("commentId")
.field("commentId").size(10000);
operateTypeAggBuilder.subAggregation(AggregationBuilders.topHits("top").size(2)
.fetchSource("content", "delFlag"));
// 创建查询对象
SearchQuery build = new NativeSearchQueryBuilder()
.withQuery(queryBuilder) //添加查询条件
.addAggregation(operateTypeAggBuilder) // 添加聚合条件
.withPageable(PageRequest.of(0, 1)) //符合查询条件的文档分页,如果文档比较大,可以把这个分页改小(不是聚合的分页)
.build();
合集:
elasticsearch
分类:
elasticsearch
, Java
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
2017-02-04 .NetCore~C#6的一些新特性
2017-02-04 .NetCore~TagHelpers标签的使用
2017-02-04 .NetCore~Json代替了Xml
2013-02-04 不说技术~我需要调整自己,最近整整两天状态不是很好