0Pricing
Elasticsearch & Full Text Search Systems · Leçon

Requêtes approximatives et avec caractères génériques

Implémentez la correspondance approximative pour tenir compte des fautes de frappe et les requêtes avec caractères génériques pour effectuer des recherches par motif, afin d’améliorer la tolérance aux erreurs.

Requêtes approximatives et avec caractères génériques est une leçon Elasticsearch & Full Text Search Systems gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Elasticsearch & Full Text Search Systems, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Elasticsearch & Full Text Search Systems comprend 4 leçons au total.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

Search Beyond Exact Matches

Imagine searching for 'apple' but typing 'aple'. Traditional exact searches fail! This lesson introduces techniques to make your search more forgiving and powerful.

We'll explore how to handle typos and search for patterns, ensuring users find what they need even with slight inaccuracies.

What is Fuzzy Search?

Fuzzy search helps you find documents that are 'similar' to your search term, even if there are minor spelling mistakes or variations.

It's incredibly useful for:

  • Correcting user typos
  • Matching variations in spelling
  • Improving user experience by being more tolerant

How Fuzziness Works: Levenshtein

Elasticsearch's fuzzy matching is often based on the Levenshtein distance algorithm. This algorithm measures the minimum number of single-character edits (insertions, deletions, or substitutions) required to change one word into the other.

For example, the Levenshtein distance between 'apple' and 'aple' is 1 (one deletion). Between 'apple' and 'apply' is 2 (one substitution, one insertion).

Your First Fuzzy Query

You can add fuzziness to a match query. The fuzziness parameter controls the maximum Levenshtein distance allowed.

Try running this example. It will find 'apple' even if you search for 'aple':

GET /products/_search
{
  "query": {
    "match": {
      "name": {
        "query": "aple",
        "fuzziness": "AUTO"
      }
    }
  }
}

Fuzzy Parameters: AUTO & Length

The fuzziness parameter can be set to AUTO (recommended) or a number (0, 1, or 2).

  • AUTO: Elasticsearch calculates the allowed edit distance based on the term's length. Shorter terms allow fewer edits.
  • prefix_length: You can specify a number of initial characters that must exactly match. This can improve performance and relevance.

What are Wildcard Queries?

Wildcard queries allow you to search for patterns within text using special characters. They're useful when you know only part of a term or want to match a family of terms.

Unlike fuzzy queries that correct typos, wildcards help you broaden your search based on specific patterns.

Wildcard Operators

Wildcard queries use two main operators:

  • * (asterisk): Matches zero or more characters. For example, appl* would match 'apple', 'application', 'appliance'.
  • ? (question mark): Matches any single character. For example, appl? would match 'apply' but not 'apple'.

Wildcard in Action

Let's see a wildcard query in practice. This query will find documents where the product_code field starts with 'ABC' and has any characters following it.

Remember, wildcard queries are typically case-sensitive on keyword fields and can be slow on text fields.

GET /products/_search
{
  "query": {
    "wildcard": {
      "product_code": {
        "value": "ABC*"
      }
    }
  }
}

Wildcard Query Cautions

While powerful, wildcard queries, especially those with leading wildcards (e.g., *term), can be computationally expensive and slow.

  • They don't use the inverted index efficiently.
  • They have to scan many terms to find matches.
  • Consider using match_phrase_prefix or completion suggesters for 'autocomplete' type functionality instead.

Fuzzy vs. Wildcard: When to Use

Choosing between fuzzy and wildcard depends on your goal:

  • Fuzzy Queries: Best for handling minor typos and spelling variations. Ideal when you expect a close but not exact match.
  • Wildcard Queries: Best for pattern matching and when you know parts of a term but not the whole thing. Be mindful of performance, especially with leading wildcards.

Test Your Knowledge

Which of the following statements are TRUE regarding fuzzy and wildcard queries in Elasticsearch?

Recap: Flexible Search

You've mastered two powerful techniques for more flexible search:

  • Fuzzy Queries: Leverage the Levenshtein distance to find matches despite typos, using fuzziness (e.g., AUTO).
  • Wildcard Queries: Search for patterns using * (zero or more chars) and ? (single char). Use with caution due to potential performance impacts.

These methods make your search more fault-tolerant and user-friendly!

Questions Fréquemment Posées

La leçon « Requêtes approximatives et avec caractères génériques » est-elle gratuite ?

Oui — le texte complet de « Requêtes approximatives et avec caractères génériques » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Elasticsearch & Full Text Search Systems, passe à CoddyKit PRO. Le cours Elasticsearch & Full Text Search Systems comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Requêtes approximatives et avec caractères génériques » ?

Implémentez la correspondance approximative pour tenir compte des fautes de frappe et les requêtes avec caractères génériques pour effectuer des recherches par motif, afin d’améliorer la tolérance au… Tu pratiques Elasticsearch & Full Text Search Systems avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Elasticsearch & Full Text Search Systems ?

Aucune expérience préalable n'est requise. Elasticsearch & Full Text Search Systems sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Requêtes approximatives et avec caractères génériques » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Elasticsearch & Full Text Search Systems ?

Oui. Chaque leçon Elasticsearch & Full Text Search Systems inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Recherches par expression et proximité
  2. Requêtes approximatives et avec caractères génériques
  3. Mise en évidence des résultats de recherche
  4. Agrégations pour la recherche à facettes
← Retour à Elasticsearch & Full Text Search Systems