Демонстрация того, как использовать пакет pg-search-sequelize для поиска базы данных фильмов и актеров.
Попробуйте демонстрацию этого примера здесь.
Предварительные условия: Docker. Если вы не хотите использовать Docker, вам нужно будет установлен Postgres и Node.js 6.0.0 или выше.
Чтобы запустить сервер и базу данных с Docker, запустите:
. / init . sh Вот и все. Теперь вы можете открыть браузер и перейти к http://localhost:3000/ .
Испытание поиска путем навигации по http://localhost:3000/film/x-men . Чтобы отфильтровать свои результаты в год выпуска, измените свой запрос на http://localhost:3000/film/x-men releaseYear:2003 . Обратите внимание, что мы не жестко кодировали фильтр года выпуска; Он автоматически предоставляется пакетом pg-search-sequelize .
Наша база данных очень проста; У нас есть только 3 таблицы: film , actor и film_actor . Используя pg-search-sequelize , мы создаем материализованный взгляд из данных пленки и актера. Мы даем фильму назвать высочайший вес, детали и актеры, получают более низкий вес, а остальные детали следуют по порядку. Система взвешивания позволяет сортировать результаты нашего поиска по релевантности в зависимости от того, как мы ее настроили. Поскольку мы дали имена фильмов более высокий порядок, чем имена актеров, поисковый запрос «Вашингтона» даст результат фильма «Вашингтон -Хайтс» перед «Человеком в огне», поскольку у первого есть поисковый запрос в названии фильма, в то время как у второго есть его в актере фильма.
Затем мы определяем нашу модель материализованного представления в /models и регистрируем ее с помощью pg-search-sequelize чтобы получить функциональность поиска.
Наконец, мы выставляем два API /film/:query и запускаем Express Server на порту 3000 .
Если вы заинтересованы в использовании этого пакета в своих проектах, зайдите в PG-Search-Seceelize.
Если вам есть что-то, что вам не понравилось, или если у вас есть какие-либо комментарии или предложения, пожалуйста, отправьте их в разделе «Проблемы» PG-Search-Secelize