如何检查 elasticsearch searchresponse 是给定搜索的成功还是失败

How to check elasticsearch searchresponse is success or failure for a given search

我正在使用以下查询查询 elasticsearch

SearchResponse searchResponse = getElasticSearchClient() 
                            .prepareSearch(indexNameStr).setTypes(typeNameStr) 
                            .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) 
                            .setQuery(queryStrr).setSize(size) 
                            .setFrom(start).addSort(fieldSortBuilder) 
                            .execute().actionGet(); 

我想检查搜索是成功还是失败。捕获异常如果在搜索期间有任何异常。

谢谢

好吧,即使某个分片无法进行特定搜索,搜索请求仍会通过。检查所有分片是否成功的唯一方法是检查响应并查看是否标记了任何分片失败。

if(searchResponse.getShardFailures().length > 0){
    System.out.println("Failed");
}

查看您正在使用的客户端的文档。在 C# 客户端中,返回的 IResponse 对象有一个 "IsValid" 属性 告诉您响应是否成功。

https://github.com/elasticsearch/elasticsearch-net/blob/fac2eb8e3715e7ad216e81ddbef48f45e56654d9/docs/contents/nest/handling-responses.markdown