#reactjs #mongodb #elasticsearch #mongoose #autocomplete
Вопрос:
Я создаю веб-сайт совета по работе (стек MERN с NextJS), и мне нужны некоторые рекомендации по следующим вопросам:
1. Я хочу реализовать автоматическое завершение поиска (показывать предложения по мере ввода), и я знаю, как этого добиться с помощью Мангуста. Тем не менее, предположим, что у вас более 10 000 пользователей, которые постоянно звонят в серверную, когда они вводят слова буква за буквой:
- Будет ли он достаточно надежным и стабильным с точки зрения производительности в долгосрочной перспективе при использовании MongoDB?
- Придется ли мне переключаться на ElasticSearch или аналогичную службу, если через какой-то момент мое приложение сильно масштабируется?
2. Просто взгляните на вкладку «Сеть» на таких сайтах, как Indeed или Talent: вы в основном вызываете API при каждом нажатии клавиши в строке поиска, и они в конечном итоге возвращают одни и те же предложения каждый раз, всегда. Следовательно, какой смысл внедрять такую систему, когда у вас есть массивы, которые позволяют хранить ключевые слова, чтобы избежать вызова API по самой незначительной причине? Я просто не понимаю.
3. Как вы на самом деле заполняете базу данных данными для автоматического заполнения? Основано ли это на полях в формах моей базы данных или на том, «что, по-моему, люди будут искать»? Звучит как глупый вопрос, я знаю, но если мне придется вручную добавлять каждое ключевое слово в базу данных, то мне было бы лучше создать массив и реализовать автоматическое завершение на стороне клиента, нет?
4. Предположим, что MongoDB недостаточно эффективен для такой задачи (первый пункт), мой второй вариант-ElasticSearch, но меня беспокоит эта услуга:
- Могу ли я достичь того, чего хочу, не заплатив ни единого пенни? Я имею в виду, что я не хочу тратить свое время на настройку, чтобы в конечном итоге знать, что мне придется платить 16 долларов в месяц после окончания бесплатной пробной версии для проекта, который (на начальной стадии) может даже не охватить 100 пользователей. Не поймите меня неправильно, у меня действительно есть долгосрочные прогнозы, но я просто не хочу тратить деньги впустую в самом начале, когда проект только стартовал.
5. Что бы вы сделали?