Coder Social home page Coder Social logo

jyshtty / autocomplete Goto Github PK

View Code? Open in Web Editor NEW

This project forked from lopespm/autocomplete

0.0 0.0 0.0 29.96 MB

Implementation of Autocomplete System Design for Large Scale - using Docker Compose

License: Apache License 2.0

Shell 10.71% JavaScript 18.20% Python 34.88% Java 17.29% CSS 0.35% Makefile 9.48% HTML 4.00% Dockerfile 5.09%

autocomplete's Introduction

Implementation: Autocomplete/Typeahead Suggestions System Design

Autocomplete Implementation System Design Intro Image

Implementation of a large scale autocomplete/typeahead suggestions system design, like the suggestions one gets when typing a Google search. Using Docker Compose.

More details in this blog article

Requirements

Docker and Docker Compose are required to run this project.

Usage

Step 1 Run the system:

$ make run

Step 2 Go to a different terminal. Add the basilar znodes and HDFS folders:

$ make setup

Step 3 Send some phrases to the search endpoint, in order to simulate multiple user search submissions to the system. This way we will have a data starting point:

$ make populate_search

Step 4 The map reduce tasks will reduce the top searches into a single HDFS file, which will be later transformed automatically by the system into a trie, and distributed to the backend:

$ make do_mapreduce_tasks

After the tries are distributed to the backend, please wait about a minute for the trie-backend-applier service to kick in. This service will assign the new backend nodes to receive the ensuing top-phrases requests.

Step 5 Visit http://localhost/ in your browser.

Client Webpage

Write some text in the input form, and you should start to see some suggestions popping up.

You can also submit your search queries, which will be fed into the assembler. After you've submitted some entries, run make do_mapreduce_tasks again, and your queries will be considered for the next batch of suggestions. Enjoy!

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.