Giter VIP home page Giter VIP logo

completely's Introduction

Description

Completely is a Java autocomplete library.

Autocomplete involves predicting a word or phrase that the user may type based on a partial query. The goal is to provide instant feedback and avoid unnecessary typing as the user formulates queries. Performance is a key issue since each keystroke from the user could invoke a query, and each query should be answered within a few milliseconds. What's more, because users often make spelling mistakes while typing, autocomplete should tolerate errors and differences in representation.

Needless to say, a standard sequential search is bound to be ineffective for anything other than small data sets. By contrast, Completely relies on text preprocessing to create an in-memory index for efficiently answering searches in large data sets. All in all, there are three fundamental components at play:

  • Analyzer function to filter, tokenize or transform text;
  • Index data structure for storing the mapping of text to the corresponding sources;
  • Automaton engine for text matching;

Together these can used to tackle a variety of use cases, wherein the choice of components or combination thereof depends solely on the application at hand.

Build from source

Building Completely requires Maven 3 and Java 8, or newer.

Download the source code:

git clone https://github.com/fmmfonseca/completely.git

Build the JAR package:

mvn clean package -DskipTests

Run the sample

Install artifacts to the local repository:

mvn install

Execute the main class:

mvn exec:java -pl sample

References

  • Bořivoj Melichar. Approximate String Matching by Finite Automata;
  • Gonzalo Navarro. A Guided Tour to Approximate String Matching;
  • Leonid Boytsov. Indexing Methods for Approximate Dictionary Searching: Comparative Analysis;
  • Marios Hadjieleftheriou and Divesh Srivastava. Approximate String Processing;
  • Surajit Chaudhuri and Raghav Kaushik. Extending Autocompletion To Tolerate Errors;

License

Released under The Apache Software License, Version 2.0

completely's People

Contributors

fmmfonseca avatar wjtan avatar

Watchers

James Cloos avatar  avatar

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.