Câu hỏi này là về việc đưa ra lựa chọn kiến trúc trước khi đi sâu vào chi tiết thử nghiệm và thực hiện. Đó là về sự phù hợp, về khả năng mở rộng và hiệu suất, của elaticsearch so với MongoDB, cho một mục đích cụ thể.
Theo giả thuyết, cả hai lưu trữ các đối tượng dữ liệu có các trường và giá trị và cho phép truy vấn phần thân của các đối tượng đó. Vì vậy, có lẽ việc lọc ra các tập hợp con của các đối tượng theo các trường được chọn đặc biệt, là một cái gì đó phù hợp cho cả hai.
Ứng dụng của tôi sẽ xoay quanh việc chọn đối tượng theo tiêu chí. Nó sẽ chọn các đối tượng bằng cách lọc đồng thời nhiều hơn một trường, đặt khác nhau, tiêu chí lọc truy vấn của nó thường bao gồm bất kỳ nơi nào giữa 1 và 5 trường, có thể nhiều hơn trong một số trường hợp. Trong khi đó, các trường được chọn làm bộ lọc sẽ là tập hợp con của số lượng trường lớn hơn nhiều. Hình dung khoảng 20 tên trường hiện có và mỗi truy vấn là một nỗ lực để lọc các đối tượng theo một số trường trong số 20 trường tổng thể đó (Có thể ít hơn hoặc hơn 20 tên trường tổng thể hiện có, tôi chỉ sử dụng số này để thể hiện tỷ lệ các trường đến các trường được sử dụng làm bộ lọc trong mọi truy vấn riêng biệt). Việc lọc có thể bằng sự tồn tại của các trường đã chọn, cũng như theo các giá trị trường, ví dụ: lọc ra các đối tượng có trường A và trường B của chúng nằm giữa x và y,
Ứng dụng của tôi sẽ liên tục thực hiện kiểu lọc này, trong khi đó sẽ không có gì hoặc rất ít hằng số về các trường được sử dụng để lọc bất cứ lúc nào. Có lẽ trong các chỉ số tìm kiếm cần phải được xác định, nhưng thậm chí có thể không có chỉ số tốc độ ngang bằng với MongoDB.
Theo dữ liệu vào cửa hàng, không có chi tiết đặc biệt nào về điều đó .. các đối tượng sẽ gần như không bao giờ thay đổi sau khi được chèn. Có lẽ các đối tượng cũ sẽ cần phải được loại bỏ, tôi muốn giả sử cả hai cửa hàng dữ liệu hỗ trợ hết hạn xóa nội dung hoặc bởi một truy vấn được thực hiện bởi ứng dụng. (Ít thường xuyên hơn, các đối tượng phù hợp với một truy vấn nhất định cũng sẽ cần phải được loại bỏ).
Bạn nghĩ sao? Và, bạn đã thử nghiệm khía cạnh này?
Tôi quan tâm đến hiệu suất và khả năng mở rộng của nó, của mỗi trong hai kho lưu trữ dữ liệu, cho loại nhiệm vụ này. Đây là loại câu hỏi mong muốn về kiến trúc và chi tiết về các tùy chọn dành riêng cho cửa hàng hoặc nền tảng truy vấn sẽ khiến nó được kiến trúc tốt được chào đón như một minh chứng cho một gợi ý hoàn toàn có thể nghĩ ra.
Cảm ơn!