SearchHits未提供确切数量的文档

问题描述 投票:0回答:1

当我在弹性搜索中搜索时,它给SearchHits提供的不仅仅是文档。我想使用java-rest高级客户端在spring boot中实现ES。我怎么能得到没有文件,因为我想打印它们。在我的情况下,没有doc是10而搜索命中是14.因此,在for循环中它给出了ArrayIndxOutOfBound。如何处理

SearchHits searchHits = searchResponse.getHits();
SearchHit[] searchHit = searchHits.getHits();
for(int i=0; i < searchHits.getTotalHits() ;i++)
{
     ...
}
java elasticsearch
1个回答
0
投票

由于SearchHit会对命中和内部命中进行计算,因此它将大于或等于命中文档

而不是使用终止条件作为getTotalHits()使用getHits()

SearchHits searchHits = searchResponse.getHits();
SearchHit[] searchHit = searchHits.getHits();
for(int i=0; i < searchHits.getHits().length ;i++)
{
     ...
}

这里,searchHits.getHits()返回一个SearchHit数组。然后在该阵列上使用长度,我们可以知道没有命中

© www.soinside.com 2019 - 2024. All rights reserved.