All Projects → typesense → showcase-books-search

typesense / showcase-books-search

Licence: Apache-2.0 license
A site to instantly search 28M books from OpenLibrary using Typesense Search (an open source alternative to Algolia / ElasticSearch) ⚡ 📚 🔍

Programming Languages

javascript
184084 projects - #8 most used programming language
ruby
36898 projects - #4 most used programming language
HTML
75241 projects
SCSS
7915 projects

Projects that are alternatives of or similar to showcase-books-search

Typesense
Fast, typo tolerant, fuzzy search engine for building delightful search experiences ⚡ 🔍 ✨ An Open Source alternative to Algolia and an Easier-to-Use alternative to ElasticSearch.
Stars: ✭ 8,644 (+7288.03%)
Mutual labels:  instantsearch, typesense
docusaurus-theme-search-typesense
A fork of the awesome @docusaurus/theme-search-algolia library customized to work with Typesense
Stars: ✭ 31 (-73.5%)
Mutual labels:  typesense
typesense-js
JavaScript / TypeScript client for Typesense
Stars: ✭ 239 (+104.27%)
Mutual labels:  typesense
typesense-dart
Dart client for Typesense
Stars: ✭ 50 (-57.26%)
Mutual labels:  typesense
Instantsearch.js
⚡️ A JavaScript library for building performant and instant search experiences with Algolia.
Stars: ✭ 2,799 (+2292.31%)
Mutual labels:  instantsearch
svelte-algolia
Svelte plugin for keeping Algolia indices in sync with custom data fetching functions.
Stars: ✭ 17 (-85.47%)
Mutual labels:  instantsearch
musicologist
Music advice from a conversational interface powered by Algolia
Stars: ✭ 19 (-83.76%)
Mutual labels:  instantsearch
create-instantsearch-app
⚡️ Build InstantSearch apps at the speed of thought
Stars: ✭ 92 (-21.37%)
Mutual labels:  instantsearch
meilisearch-vue
www.meilisearch.com/
Stars: ✭ 80 (-31.62%)
Mutual labels:  instantsearch
meilisearch-react
www.meilisearch.com/
Stars: ✭ 87 (-25.64%)
Mutual labels:  instantsearch
unified-instantsearch-ecommerce
The fastest way to implement Algolia, for e-commerce customers.
Stars: ✭ 26 (-77.78%)
Mutual labels:  instantsearch
algolia.github.io
Algolia's community projects
Stars: ✭ 12 (-89.74%)
Mutual labels:  instantsearch
typesense-go
Go client for Typesense: https://github.com/typesense/typesense
Stars: ✭ 61 (-47.86%)
Mutual labels:  typesense
typesense-instantsearch-demo
A demo app that shows how to use the Typesense InstantSearch adapter, to build rich search interfaces.
Stars: ✭ 30 (-74.36%)
Mutual labels:  typesense-instantsearch-adapter

📚 Instant Books Search, powered by Typesense

This is a demo that showcases some of Typesense's features using a 28 Million database of books from OpenLibrary (Internet Archive).

View it live here: books-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 book dataset is from openlibrary.org. If you're able to contribute book metadata, please do 🙏

The app was built using the Typesense Adapter for InstantSearch.js and is hosted on S3, with CloudFront for a CDN.

The search backend is powered by a geo-distributed 3-node Typesense cluster running on Typesense Cloud, with nodes in Oregon, Frankfurt and Mumbai.

The dataset has ~28M records, takes up 6.8GB on disk and 14.3GB in RAM when indexed in Typesense. Takes ~3 hours to index these 28M records.

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 book data into Typesense.
  • scripts/data - contains a 1K sample subset of the books database. But you can download the full dataset from the link above.

Development

To run this project locally, install the dependencies and run the local server:

yarn
bundle # JSON parsing takes a while to run using JS when indexing, so we're using Ruby just for indexing

yarn run typesenseServer

ln -s .env.development .env

yarn run indexer:extractAuthors # This will output an authors.jsonl file
yarn run indexer:transformDataset # This will output a transformed_dataset.json file
BATCH_SIZE=100000 yarn run indexer:importToTypesense # This will import the JSONL file into Typesense

yarn start

Open http://localhost:3000 to see the app.

Deployment

The app is hosted on S3, with Cloudfront for a CDN.

yarn build
yarn deploy
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].