Smart Search for PHP

Creating Autocomplete or Search Suggestion Functionality with PHP

What is Fuzzy matching

Fuzzy matching treats two words that are “fuzzily” similar as if they were the same word.

In 1965, Vladimir Levenshtein developed the Levenshtein distance, which measures the number of single-character edits required to transform one word into the other.
He proposed three types of one-character edits:

  • Substitution of one character for another: _f_ox → _b_ox
  • Insertion of a new character: sic → sic_k_
  • Deletion of a character: b_l_ack → back

How to do a fuzzy match in MYSQL with PHP for auto-complete?

Algolia Search API Client for PHP

Algolia Search is a hosted search engine capable of delivering realtime results from the first keystroke.
The Algolia Search API Client for PHP lets you easily use the Algolia Search REST API from your PHP code.

A fully featured full text search engine written in PHP

TNTSearch is a fully featured full text search engine written entirely in PHP. It’s simple configuration allows you to add an amazing search experience to your site in just minutes. Some of the TNTSearch features are:

  • fuzzy search
  • geo-search
  • text-classification
  • boolean search
  • result highlighting

Site search with Elasticsearch

Powered by Elasticsearch, Swiftype delivers relevant results for even the most complicated queries. With elasticsearch language modeling intelligence you can expect that users will be able to search intuitively and always find the content they’re looking for.

Solr

Solr is the popular, blazing fast, open source NoSQL search platform from the Apache Lucene project. Its major features include powerful full-text search, hit highlighting, faceted search, database integration, rich document (e.g., Word, PDF) handling and geospatial search.

Solr is highly scalable, providing fault tolerant distributed search and indexing, and powers the search and navigation features of many of the world’s largest internet sites.

Leave a Reply

Your email address will not be published. Required fields are marked *