Це питання стосується того, щоб зробити архітектурний вибір перед тим, як заглиблюватися в деталі експерименту та реалізації. Йдеться про придатність, з точки зору масштабності та продуктивності, еластичного пошуку проти MongoDB для дещо конкретної мети.
Гіпотетично обидва зберігають об'єкти даних, у яких є поля та значення, і дозволяють проводити запит до цього об’єкта. Отже, імовірно, фільтрування підмножини об'єктів відповідно до вибраних спеціальних полів є чимось придатним для обох.
Моя програма буде обертатися навколо вибору об'єктів за критеріями. Він вибирав би об'єкти, фільтруючи одночасно більш ніж одне поле, інакше кажучи, його критерії фільтрації запитів, як правило, містять місця від 1 до 5 полів, можливо, в деяких випадках більше. Тоді як поля, вибрані як фільтри, будуть підмножиною значно більшої кількості полів. Позначте 20 існуючих імен полів, і кожен запит - це спроба відфільтрувати об'єкти за кількома полями із цих 20-ти полів (Це може бути менше або більше 20 загальних імен полів, я просто використав це число, щоб продемонструвати співвідношення поля для полів, які використовуються як фільтри у кожному дискретному запиті). Фільтрація може відбуватися за наявністю вибраних полів, а також за значеннями полів, наприклад, фільтруванням об'єктів, у яких є поле A, а їхнє поле B знаходиться між x і y,
Моя програма буде постійно проводити подібну фільтрацію, тоді як не буде нічого або дуже мало постійної точки зору, які поля використовуються для фільтрації в будь-який момент. Можливо, в індексах еластичного пошуку потрібно визначити, але, можливо, навіть без індексів швидкість знаходиться на рівні з швидкістю MongoDB.
Відповідно до даних, що потрапляють у магазин, особливих деталей щодо цього немає, об'єкти майже ніколи не будуть змінені після вставки. Можливо, старі об'єкти потрібно буде скинути, я б припустив, що обидва сховища даних закінчуються, видаляючи дані всередині або шляхом запиту, зробленого додатком. (Рідше об’єкти, які відповідають певному запиту, також повинні бути відкинуті).
Що ти думаєш? І чи експериментували ви з цим аспектом?
Мене цікавить ефективність та масштабованість цієї програми для кожного із цих сховищ даних для такого роду завдань. Це своєрідне питання архітектурного дизайну, і деталі конкретних варіантів магазину або наріжних каменів запитів, які повинні зробити його добре архітектурним, вітаються як демонстрація цілком продуманої пропозиції.
Дякую!