Nó chủ yếu phụ thuộc vào kích thước tài liệu của bạn, tài nguyên sẵn có trên máy khách và loại khách hàng (khách hàng vận chuyển hoặc trình khách nút).
Trình khách nút nhận thức được phân đoạn trên cụm và gửi tài liệu trực tiếp đến các nút giữ các phân đoạn mà chúng được cho là được lập chỉ mục. Mặt khác, máy khách vận tải là một máy khách bình thường gửi các yêu cầu của nó tới một danh sách các nút theo kiểu vòng tròn. Sau đó, yêu cầu hàng loạt sẽ được gửi đến một nút, đó sẽ trở thành cổng của bạn khi lập chỉ mục.
Vì bạn đang sử dụng API Java, tôi khuyên bạn nên xem BulkProcessor
, giúp dễ dàng hơn và linh hoạt hơn khi lập chỉ mục hàng loạt. Bạn có thể xác định số lượng hành động tối đa, kích thước tối đa và khoảng thời gian tối đa kể từ lần thực hiện hàng loạt cuối cùng. Nó sẽ thực hiện số lượng lớn tự động cho bạn khi cần thiết. Bạn cũng có thể đặt số lượng yêu cầu hàng loạt đồng thời tối đa.
Sau khi bạn đã tạo ra BulkProcessor
như thế này:
BulkProcessor bulkProcessor = BulkProcessor.builder(client, new BulkProcessor.Listener() {
@Override
public void beforeBulk(long executionId, BulkRequest request) {
logger.info("Going to execute new bulk composed of {} actions", request.numberOfActions());
}
@Override
public void afterBulk(long executionId, BulkRequest request, BulkResponse response) {
logger.info("Executed bulk composed of {} actions", request.numberOfActions());
}
@Override
public void afterBulk(long executionId, BulkRequest request, Throwable failure) {
logger.warn("Error executing bulk", failure);
}
}).setBulkActions(bulkSize).setConcurrentRequests(maxConcurrentBulk).build();
Bạn chỉ cần thêm các yêu cầu của bạn với nó:
bulkProcessor.add(indexRequest);
và đóng nó lại ở cuối để tuôn bất kỳ yêu cầu cuối cùng có thể có chưa được thực hiện:
bulkProcessor.close();
Để cuối cùng trả lời câu hỏi của bạn: e điều tốt đẹp về các BulkProcessor
cũng là nó có mặc định hợp lý: 5 MB kích thước, 1000 hành động, 1 yêu cầu đồng thời, không có khoảng thời gian tuôn ra (mà có thể hữu ích để thiết lập).
Xin vui lòng, đánh dấu câu trả lời là đúng ..... –