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

时间:2015-01-12 12:55:46

标签: search elasticsearch

我使用以下查询查询elasticsearch

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

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

由于

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

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