{"id":19000469,"url":"https://github.com/typesense/showcase-books-search","last_synced_at":"2025-04-04T23:07:49.628Z","repository":{"id":55615135,"uuid":"321178598","full_name":"typesense/showcase-books-search","owner":"typesense","description":"A site to instantly search 28M books from OpenLibrary using Typesense Search (an open source alternative to Algolia / ElasticSearch) ⚡ 📚 🔍","archived":false,"fork":false,"pushed_at":"2025-02-05T02:38:23.000Z","size":692,"stargazers_count":159,"open_issues_count":1,"forks_count":18,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-03-28T22:14:36.425Z","etag":null,"topics":["instantsearch","typesense","typesense-instantsearch-adapter","typesense-showcase"],"latest_commit_sha":null,"homepage":"https://books-search.typesense.org/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/typesense.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-12-13T23:05:45.000Z","updated_at":"2025-03-27T11:30:34.000Z","dependencies_parsed_at":"2025-02-24T00:00:54.942Z","dependency_job_id":null,"html_url":"https://github.com/typesense/showcase-books-search","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/typesense%2Fshowcase-books-search","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/typesense%2Fshowcase-books-search/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/typesense%2Fshowcase-books-search/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/typesense%2Fshowcase-books-search/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/typesense","download_url":"https://codeload.github.com/typesense/showcase-books-search/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247261603,"owners_count":20910108,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["instantsearch","typesense","typesense-instantsearch-adapter","typesense-showcase"],"created_at":"2024-11-08T18:07:19.734Z","updated_at":"2025-04-04T23:07:49.608Z","avatar_url":"https://github.com/typesense.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📚 Instant Books Search, powered by Typesense\n\nThis is a demo that showcases some of [Typesense's](https://github.com/typesense/typesense) features using a 28 Million database of books from \u003ca href=\"https://openlibrary.org/\" target=\"_blank\"\u003eOpenLibrary\u003c/a\u003e (Internet Archive).\n\nView it live here: [books-search.typesense.org](https://books-search.typesense.org/)\n\n## Tech Stack\n\nThis search experience is powered by \u003ca href=\"https://typesense.org\" target=\"_blank\"\u003eTypesense\u003c/a\u003e which is\na blazing-fast, \u003ca href=\"https://github.com/typesense/typesense\" target=\"_blank\"\u003eopen source\u003c/a\u003e typo-tolerant\nsearch-engine. It is an open source alternative to Algolia and an easier-to-use alternative to ElasticSearch.\n\nThe book dataset is from \u003ca href=\"https://openlibrary.org/\" target=\"_blank\"\u003eopenlibrary.org\u003c/a\u003e. If you're able to contribute\nbook metadata, please do 🙏\n\nThe app was built using the \u003ca href=\"https://github.com/typesense/typesense-instantsearch-adapter\" target=\"_blank\"\u003e\nTypesense Adapter for InstantSearch.js\u003c/a\u003e and is hosted on S3, with CloudFront for a CDN.\n\nThe search backend is powered by a geo-distributed 3-node Typesense cluster running on \u003ca href=\"https://cloud.typesense.org\" target=\"_blank\"\u003eTypesense Cloud\u003c/a\u003e,\nwith nodes in Oregon, Frankfurt and Mumbai.\n\nThe dataset has ~28M records, takes up 6.8GB on disk and 14.3GB in RAM when indexed in Typesense.\nTakes ~3 hours to index these 28M records.\n\n## Repo structure\n\n- `src/` and `index.html` - contain the frontend UI components, built with \u003ca href=\"https://github.com/typesense/typesense-instantsearch-adapter\" target=\"_blank\"\u003eTypesense Adapter for InstantSearch.js\u003c/a\u003e\n- `scripts/indexer` - contains the script to index the book data into Typesense.\n- `scripts/data` - contains a 1K sample subset of the books database. But you can download the full dataset from the link above.\n\n## Development\n\nTo run this project locally, install the dependencies and run the local server:\n\n```shell\nyarn\nbundle # JSON parsing takes a while to run using JS when indexing, so we're using Ruby just for indexing\n\nyarn run typesenseServer\n\nln -s .env.development .env\n\nyarn run indexer:extractAuthors # This will output an authors.jsonl file\nyarn run indexer:transformDataset # This will output a transformed_dataset.json file\nBATCH_SIZE=100000 yarn run indexer:importToTypesense # This will import the JSONL file into Typesense\n\nyarn start\n```\n\nOpen http://localhost:3000 to see the app.\n\n## Deployment\n\nThe app is hosted on S3, with Cloudfront for a CDN.\n\n```shell\nyarn build\nyarn deploy\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftypesense%2Fshowcase-books-search","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftypesense%2Fshowcase-books-search","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftypesense%2Fshowcase-books-search/lists"}