seq_no_primary_term
這個(gè)錯(cuò)誤在聚合操作時(shí)出現(xiàn)的問(wèn)題逻杖,這個(gè)問(wèn)題是由于es客戶端的版本與服務(wù)端版本不兼容的問(wèn)題
蓝纲,例如:你的客戶端是6.8.7,而es服務(wù)器版本是6.5.4喂击,這時(shí)再進(jìn)行topHits聚合操作時(shí)扰魂,就會(huì)出現(xiàn)這個(gè)錯(cuò)誤。
es服務(wù)器版本
118538-20210204174613577-54158737.png
es客戶端版本
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>6.8.7</version>
</dependency>
上面的代碼可以看到蹂随,客戶端與服務(wù)端的版本出現(xiàn)了不兼容的情況,這時(shí)客戶端在進(jìn)行topHits分組時(shí)因惭,就會(huì)傳seq_no_primary_term
參數(shù) 岳锁,這時(shí)服務(wù)端不認(rèn)這個(gè)參數(shù) ,就出現(xiàn)了問(wèn)題筛欢,解決方法很簡(jiǎn)單浸锨,就是降低客戶端驅(qū)動(dòng)版本即可唇聘。
<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"));
// 創(chuàng)建聚合查詢條件
TermsAggregationBuilder operateTypeAggBuilder = AggregationBuilders.terms("commentId")
.field("commentId").size(10000);
operateTypeAggBuilder.subAggregation(AggregationBuilders.topHits("top").size(2)
.fetchSource("content", "delFlag"));
// 創(chuàng)建查詢對(duì)象
SearchQuery build = new NativeSearchQueryBuilder()
.withQuery(queryBuilder) //添加查詢條件
.addAggregation(operateTypeAggBuilder) // 添加聚合條件
.withPageable(PageRequest.of(0, 1)) //符合查詢條件的文檔分頁(yè),如果文檔比較大柱搜,可以把這個(gè)分頁(yè)改谐倮伞(不是聚合的分頁(yè))
.build();
愿與諸君共進(jìn)步,大量的面試題及答案還有資深架構(gòu)師錄制的視頻錄像:有Spring聪蘸,MyBatis宪肖,Netty源碼分析,高并發(fā)健爬、高性能控乾、分布式、微服務(wù)架構(gòu)的原理娜遵,JVM性能優(yōu)化蜕衡、分布式架構(gòu)等這些成為架構(gòu)師必備的知識(shí)體系,可以微信搜索539413949獲取设拟,最后祝大家都能拿到自己心儀的offer