GithubHelp home page GithubHelp logo

typesense / showcase-recipe-search Goto Github PK

View Code? Open in Web Editor NEW
464.0 16.0 35.0 758 KB

Instantly search 2M cooking recipes using Typesense Search (an open source alternative to Algolia / ElasticSearch) โšก ๐Ÿฅ˜ ๐Ÿ”

Home Page: https://recipe-search.typesense.org

License: Apache License 2.0

HTML 31.05% JavaScript 45.02% SCSS 5.63% Ruby 18.30%
typesense typesense-instantsearch-adapter typesense-showcase instantsearch

showcase-recipe-search's Introduction

๐Ÿฅ˜ Instant Recipe Search, powered by Typesense

This is a demo that showcases some of Typesense's features using a 2 Million database of recipes.

View it live here: recipe-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 recipe dataset is from Glorf/recipenlg ๐Ÿ™!

The dataset is 2.2 GB on disk, with ~2.2 million rows. It took 8 minutes to index this dataset on a 3-node Typesense cluster with 4vCPUs per node and the index was 2.7GB in RAM.

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.

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 recipe data into Typesense.
  • scripts/data - contains a 1K sample subset of the recipes 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

BATCH_SIZE=1000 yarn run indexer:transformDataset # This will output a JSONL file
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

showcase-recipe-search's People

Contributors

jasonbosco avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

showcase-recipe-search's Issues

Any plan for regionalization?

Description

Not a real issue, it's a feature request: regionalized results (for example, recipes in intalian language, with metric units).

Steps to reproduce

Post a search to https://recipe-search.typesense.org/, results are in English, no way to ask for a different locale.

Expected Behavior

I'd like to be able to select a specific locale (in particular, Italian and French) for requests and results.

Actual Behavior

English locale is the only one available

Metadata

Typsense Version: Any version

OS: Any OS

no uppercase in the path of your work repository

Hi,
The installer doesn't like uppercase in the path of your work repository. I mean the place where you download the code and where your "package.json" file is.
Hope it will help.
With best regards

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.