https://github.com/typesense/showcase-songs-search
A site to instantly search 32M songs from the MusicBrainz songs database, using Typesense Search (an open source alternative to Algolia / ElasticSearch) ⚡ 🎵 🔍
https://github.com/typesense/showcase-songs-search
instantsearch-js musicbrainz typesense typesense-instantsearch-adapter
Last synced: 6 months ago
JSON representation
A site to instantly search 32M songs from the MusicBrainz songs database, using Typesense Search (an open source alternative to Algolia / ElasticSearch) ⚡ 🎵 🔍
- Host: GitHub
- URL: https://github.com/typesense/showcase-songs-search
- Owner: typesense
- License: apache-2.0
- Created: 2020-10-24T06:15:11.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2025-02-05T00:52:57.000Z (8 months ago)
- Last Synced: 2025-03-28T14:08:00.764Z (7 months ago)
- Topics: instantsearch-js, musicbrainz, typesense, typesense-instantsearch-adapter
- Language: JavaScript
- Homepage: https://songs-search.typesense.org
- Size: 5.02 MB
- Stars: 181
- Watchers: 11
- Forks: 22
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 🎶 MusicBrainz Song Search, powered by Typesense
This is a demo that showcases some of [Typesense's](https://github.com/typesense/typesense) features using a 32 Million database of songs.
View it live here: [songs-search.typesense.org](https://songs-search.typesense.org/)
## Tech Stack
This search experience is powered by Typesense which is
a blazing-fast, open source typo-tolerant
search-engine. It is an open source alternative to Algolia and an easier-to-use alternative to ElasticSearch.The songs dataset is from MusicBrainz which is an open
music encyclopedia that collects music metadata and makes it available to the public. Please contribute to it if you're able to!The app was built using the
Typesense Adapter for InstantSearch.js and is hosted on DigitalOcean's App Platform.The search backend is powered by a geo-distributed 3-node Typesense cluster running on Typesense Cloud,
with nodes in Oregon, Frankfurt and Mumbai.## Repo structure
- `src/` and `index.html` - contain the frontend UI components, built with Typesense Adapter for InstantSearch.js
- `scripts/indexer` - contains the script to index the MusicBrainz data into Typesense.
- `scripts/data` - contains a 1K sample subset of the MusicBrainz songs database. But you can download the full dataset from their website.
- `scripts/benchmarking` - contains a [k6](https://k6.io) script to load test the Typesense Server.## Development
To run this project locally, install the dependencies and run the local server:
```sh
npm install -g parcel-bundler # Need to use NPM for this: https://github.com/parcel-bundler/parcel/issues/1036#issuecomment-559982275yarn
yarn run typesenseServer
ln -s .env.development .env
BATCH_SIZE=1000 yarn run indexer
yarn start
```Open http://localhost:3000 to see the app.
## Deployment
The app is hosted on [DigitalOcean App Platform](https://www.digitalocean.com/products/app-platform/).
Pushing to master will deploy the app to production.