У меня есть data.json файл, который я использую как базу данных для моего как бы «интернет магазина»,
и в этом магазине я хочу сделать поиск по товарам и фильтр, но не могу понять, можно ли использовать Elasticsearch для моих целей или мне нужна настоящая база данных.
Если можно, то я не могу понять как и где подключить этот Elasticsearch на бэкэнде или на фронтенде?
Легко ли это сделать или это задача синьорская?
1. На бэкенде
2. Еластик сам по себе является базой данных, так что его надо наполнить из этого жсона
3. Желательно нормальную базу всё-таки иметь
4. Вы можете полнотекстовый поиск реализовать и без еластика в своём json-е
5. Еластик жирноват, я бы взял sonic для такой несложной задачи.
Если данные влезают в оперативку, то ещё можно посмотреть в сторону Tarantool, Reindexer или RediSearch.
Кстати Redis так же пригодится и для хранения сессий.
Вообще Elasticsearch установить и подключить легко, а вот поддерживать в рабочем состоянии сложно.
Прикольно получается, я pre-junior и для портфолио мне нужно сделать интернет магазин, в котором по хорошему должны работать основные фишки интернет магазинов (Поиск, Фильтрация, Пагинация и тд.), но чтобы это сделать, нужно углубится в "не-джуниорские" технологии.
Ибо какой смысл делать фильтрацию товаров, если она будет сделана не так, как её делают в реальных проектах? У меня уже депрессия началась из-за этой фильтрации).
Если данные влезают в оперативку
По моему держать весь каталог интернет магазина в ОЗУ так себе идея, не? Но в любом случае спасибо за ответ!
squadbrodyaga, насчёт пагинации, предлагаю сразу разобраться как её делать без offset’ов.
А насчёт хранения в ОЗУ, так любая СУБД включая классические MySQL и PostgreSQL, стараются держать данные в оперативке, если есть такая возможность. А к примеру Tarantool сперва пишет данные на диск, а потом в ОЗУ, но они должны полностью помещаться в ОЗУ.