Việc sử dụng cơ sở dữ liệu hay không thực sự xác định được thời gian bạn muốn lưu giữ và phát triển dữ liệu này. Việc làm hỏng toàn bộ chỉ mục Solr (và mất tất cả dữ liệu của bạn) dễ dàng hơn nhiều so với việc làm hỏng toàn bộ cơ sở dữ liệu. Ngoài ra, Solr không có hỗ trợ tốt cho việc sửa đổi một lược đồ mà không bắt đầu với một chỉ mục mới. Ví dụ:bạn có thể thêm một trường khác cũng được, nhưng bạn không thể thay đổi tên hoặc loại trường mà không xóa chỉ mục của mình.
Nếu bạn sử dụng DB, bạn có thể thiết lập Solr để lập chỉ mục trực tiếp từ DB bằng cách sử dụng DataImportHandler . Đối với lược đồ của bạn, điều này sẽ khá đơn giản, nhưng điều này có thể trở nên khó khăn nhanh chóng khi DB của bạn trở nên phức tạp hơn. Tôi nghĩ rằng có một số lợi thế khi sử dụng các đối tượng Hibernate mà bạn đã thiết lập và chỉ cần chèn chúng bằng Solrj. Điểm khó khăn khác với DataImportHandler là nó được kiểm soát hoàn toàn bằng cách sử dụng http. Vì vậy, bạn cần quản lý các công việc cron riêng biệt (hoặc một số mã khác) để xử lý việc lập lịch sử dụng wget
hoặc curl
.