zoukankan      html  css  js  c++  java
  • 错误解决:ElasticSearch SearchResponse的Hits[]总是比totalHits少一条记录

    在做ElasticSearch查询操作的时候,发现Hits[].length总是比totalHits.value少1。
    代码如下:

      SearchRequest request = new SearchRequest("indexName");
      SearchSourceBuilder builder = new SearchSourceBuilder();
      BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder();
      builder.query(QueryBuilder.matchPhraseQuery("fieldName","searchStr"));
      builder.from(1);
      builder.size(10);
      request.source(builder);
    
      SearchResponse response = restHighLevelClient.search(request,RequestOptions.DEFAULT);
      // 获取查询总数
      System.out.println(response.getHits().getTotalHits().value);
      // 获取查询分页数量
      System.out.println(response.getHits().getHits().length);

    输出结果:

      第二行总是比第一行少1。

    按照常规分页的思想,其实应该是从第一页开始,然后跟上每页的数据,没想到这里from(1)直接把第一条数据给跳过了。

    解决办法:
      直接from(0)就ok了。

  • 相关阅读:
    第七天冲刺
    MySQL管理
    LNMP环境搭建
    docker使用笔记
    Laravel5.2使用笔记
    Linux使用笔记
    Redis3.2.11在centos9安装与卸载
    Ubuntu系统
    Linux下安装与卸载PHP
    安装Linux
  • 原文地址:https://www.cnblogs.com/xiaoyh/p/15574706.html
Copyright © 2011-2022 走看看