HighLevelClient请求返回内容超过默认限制。网上说是HeapBufferedResponseConsumerFactory里请求超过限制的问题,要改一下HeapBufferedResponseConsumerFactory 的
bufferLimit
找了好一会找到如何改这个bufferLimit,记录一下解决的代码
private static RequestOptions getLongBufferRequestOptions(int bufferLimits) {
HttpAsyncResponseConsumerFactory.HeapBufferedResponseConsumerFactory consumerFactory = new HttpAsyncResponseConsumerFactory.HeapBufferedResponseConsumerFactory(bufferLimits);
RequestOptions.Builder builder = RequestOptions.DEFAULT.toBuilder();
builder.setHttpAsyncResponseConsumerFactory(consumerFactory);
return builder.build();
}
public static boolean docExists(String index, String id, RestHighLevelClient client) throws IOException {
GetRequest getRequest = new GetRequest(index, id);
getRequest.fetchSourceContext(new FetchSourceContext(false));
getRequest.storedFields("_none_");
boolean exists = client.exists(getRequest, getLongBufferRequestOptions(1024*1024*1024));
return exists;
}