Tools & Platforms
Elasticsearch
In shortAn open-source search and analytics engine for indexing large amounts of text, with fuzzy, phonetic and vector search built in.
Elasticsearch is a search and analytics engine built on the Apache Lucene library. You load documents into an index, and it lets you search and aggregate them very quickly, even across millions of records. Many site searches, product catalogues and log-analysis stacks run on it. In MLforSEO’s fuzzy matching material it appears as one of the tools for approximate matching at scale.
How it works
When you index a document, Elasticsearch runs the text through an analyser that splits it into tokens (see tokenisation), lowercases them and optionally removes stop words or reduces words to their stems. It stores the result in an inverted index: a lookup from each term to the documents that contain it. Queries are analysed the same way and matched against that index, then scored for relevance (BM25 by default).
Several features matter for matching messy text:
- Fuzzy queries find terms within a Levenshtein edit distance of up to two, with fuzziness set to AUTO so short words allow fewer edits.
- Phonetic analysis (a plugin) indexes sound-alike codes such as Metaphone, so “Smith” and “Smyth” match. See phonetic matching.
- N-gram and edge n-gram tokenisers support partial and autocomplete-style matching.
- Vector search stores embeddings and finds nearest neighbours, which enables semantic search alongside keyword search.
How it’s used in SEO and marketing
- Product name standardisation: matching “iPhone 15 Pro 128 GB” and “Apple iPhone15 Pro (128GB)” across feeds.
- Matching internal link anchor text to page titles at site scale.
- Powering on-site search and analysing what visitors search for.
- Server log analysis for crawl budget work, often as part of the Elastic Stack with Kibana dashboards.
Example
You have 40,000 supplier product names and a master catalogue. Index the catalogue with a standard analyser plus edge n-grams, then run each supplier name as a fuzzy match query. Exact and near-exact names match automatically; anything with a low relevance score goes to a review list. This is the same idea as the Python fuzzy matching notebooks, moved into a search engine that can handle much larger volumes.
Limitations and things to watch
- It is infrastructure: you need to host it (or pay for a managed service) and maintain mappings and analysers.
- Fuzzy matching is capped at two edits per term and does not understand meaning; use vectors or a language model for synonyms.
- Relevance scores are relative to a query, so they are not a fixed similarity percentage you can threshold across queries.
- For a one-off spreadsheet task, RapidFuzz or a Google Sheets template is usually faster to set up.
Learn it on MLforSEO
Where Elasticsearch shows up on MLforSEO
Learn it in a course
Sources and further reading
Other terms from Tools & Platforms
- Apps ScriptGoogle's cloud-based JavaScript platform for automating Google Sheets and other Workspace apps, often used to…
- BigQueryGoogle Cloud's serverless data warehouse for storing and querying very large datasets with SQL, including Sear…
- Claude (Anthropic)Anthropic's family of large language models and AI assistant, used for writing, analysis, coding and agentic w…
- Data StudioGoogle's free dashboard and reporting tool, renamed back to Data Studio in 2026, used to visualise SEO and ML…
- FuzzyWuzzy/RapidFuzz/PolyFuzzPython libraries for fuzzy string matching. RapidFuzz is the fast default, TheFuzz is FuzzyWuzzy's successor,…
- GensimAn open-source Python library for topic modelling and document similarity, best known for LDA, LSI, word2vec a…
- Google CloudGoogle's cloud computing platform. For SEOs it hosts the ML APIs used most often: Natural Language, Knowledge…
- Google Cloud AutoMLGoogle's tools for training custom models without writing model code; AutoML for text was retired in Vertex AI…
- Google ColabGoogle's free, browser-based Python notebook that runs code on Google's servers, so you can use ML scripts wit…