zoukankan      html  css  js  c++  java
  • es~seq_no_primary_term问题的解决

    seq_no_primary_term这个错误在聚合操作时出现的问题,这个问题是由于es客户端的版本与服务端版本不兼容的问题,例如:你的客户端是6.8.7,而es服务器版本是6.5.4,这时再进行topHits聚合操作时,就会出现这个错误。

    es服务器版本
    1
    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();
    

  • 相关阅读:
    CNN comprehension
    Gradient Descent
    Various Optimization Algorithms For Training Neural Network
    gerrit workflow
    jenkins job配置脚本化
    Jenkins pipeline jobs隐式传参
    make words counter for image with the help of paddlehub model
    make words counter for image with the help of paddlehub model
    git push and gerrit code review
    image similarity
  • 原文地址:https://www.cnblogs.com/lori/p/14374109.html
Copyright © 2011-2022 走看看