# Misspelled words or Typo Mistakes handling in Elastic Search without fuzziness

**URL:** <https://discuss.elastic.co/t/misspelled-words-or-typo-mistakes-handling-in-elastic-search-without-fuzziness/351083>\
**Category:** Elastic Search\
**Tags:** elastic-app-search\
**Created:** [January 15, 2024, 3:41pm UTC](https://discuss.elastic.co/t/misspelled-words-or-typo-mistakes-handling-in-elastic-search-without-fuzziness/351083 "2024-01-15T15:41:44Z")\
**Posts on this page:** 17\
**Page:** 1

<div class="post-metadata">

**Author:** ![Mohandass](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/mohandass/32/130808_2.png) [@Mohandass](https://discuss.elastic.co/u/Mohandass)\
**Post date:** [January 15, 2024, 3:41pm UTC](https://discuss.elastic.co/t/misspelled-words-or-typo-mistakes-handling-in-elastic-search-without-fuzziness/351083/1 "2024-01-15T15:41:44Z")

</div>

Hi All,  
We are working on an ecommerce product with Next JS and Python API driven project. In this we have implemented Elasticsearch Rest based API calls from React JS.

We are facing a problem as below,  
**Spelling Mistakes to be handled without fuzziness**  
**For example:** `flour tiels` should only match **floor tiles**. This **should not match below items**

- floor mats
- wooden floor
- floor carpet
- virtrified tiles
- wall tiles
- Kitchen tiles

So we are unable to use fuzziness here, We have tried with nGrams option but it was not helpful.

Any other suggestion to handle this would a great support for us, Thank you all !

---

<div class="post-metadata">

**Author:** ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)\
**Post date:** [January 15, 2024, 3:54pm UTC](https://discuss.elastic.co/t/misspelled-words-or-typo-mistakes-handling-in-elastic-search-without-fuzziness/351083/2 "2024-01-15T15:54:55Z")

</div>

> [@Mohandass](#):
>
> Spelling Mistakes to be handled without fuzziness

This is typically what fuzziness is used for. Why are you not able to use it here? What is the mapping of the field(s) you are querying?

---

<div class="post-metadata">

**Author:** ![Mohandass](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/mohandass/32/130808_2.png) [@Mohandass](https://discuss.elastic.co/u/Mohandass)\
**Post date:** [January 15, 2024, 4:02pm UTC](https://discuss.elastic.co/t/misspelled-words-or-typo-mistakes-handling-in-elastic-search-without-fuzziness/351083/3 "2024-01-15T16:02:16Z")

</div>

Hi @Christian_Dahlqvist, Just updated the question, there was some words mistake

**For example:** `flour tiels` should **only** match **`floor tiles`**. This **should not match below items**

- floor mats
- wooden floor
- floor carpet
- virtrified tiles
- wall tiles
- Kitchen tiles

Fuzzy is matching above items in our case !

---

<div class="post-metadata">

**Author:** ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)\
**Post date:** [January 15, 2024, 4:23pm UTC](https://discuss.elastic.co/t/misspelled-words-or-typo-mistakes-handling-in-elastic-search-without-fuzziness/351083/4 "2024-01-15T16:23:53Z")

</div>

> [@Mohandass](#):
>
> Fuzzy is matching above items in our case !

That is probably because of the mapping of the field(s) queried and/or the query. Can you please share these?

---

<div class="post-metadata">

**Author:** ![Sean\_Story](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/sean_story/32/69987_2.png) [@Sean\_Story](https://discuss.elastic.co/u/Sean_Story)\
**Post date:** [January 15, 2024, 4:28pm UTC](https://discuss.elastic.co/t/misspelled-words-or-typo-mistakes-handling-in-elastic-search-without-fuzziness/351083/5 "2024-01-15T16:28:41Z")

</div>

I think you might be confusing fuzzy matching (also called "typo tolerance") with _phrase_ matching, which allows you to get lower-scored documents when fewer terms (but still some terms!) match.

In the examples you gave, I'd expect `Floor tiles` to be the top result, but for the others to still show up in your result set, but with lower scores. This is because each of them have one term that fuzzy-matches one of the query terms. But since `Floor tiles` has _two_ terms that fuzzy-match the two query terms, it should be the top result.

Side note - if you're finding yourself confused or overwhelmed by all the moving pieces of building a relevant search solution on top of bare Elasticsearch, I suggest you look at [Elastic App Search](https://www.elastic.co/guide/en/app-search/current/getting-started.html) which obfuscates a lot of the low-level details, but can help you set up an end-user search experience that mimics a lot of the relevance patterns we come to expect when using tools like Google every day.

---

<div class="post-metadata">

**Author:** ![Mohandass](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/mohandass/32/130808_2.png) [@Mohandass](https://discuss.elastic.co/u/Mohandass)\
**Post date:** [January 16, 2024, 3:50am UTC](https://discuss.elastic.co/t/misspelled-words-or-typo-mistakes-handling-in-elastic-search-without-fuzziness/351083/6 "2024-01-16T03:50:11Z")

</div>

Hi @Christian_Dahlqvist,  
Here is the query

**Request Query**

```auto
{
    "_source": [
        "title",
        "keywords",
        "description",
        "other_information"
    ],
    "query": {
        "bool": {
            "must": [
                {
                    "multi_match": {
                        "query": "flour tiels",
                        "fields": [
                            "title^4",
                            "keywords^3",
                            "description^2",
                            "other_information^1"
                        ],
                        "fuzziness": "AUTO"
                    }
                }
            ]
        }
    }
}

```

**Document Mapping**

```auto
mappings = {
    "properties": {
        "title": {
            "type": "text",
            "analyzer": "synonym_stemmer_bad_words_analyzer",
            "fields": {
                "keyword": {
                    "type": "keyword"
                }
            }
        },
        "keywords": {
            "type": "text",
            "analyzer": "synonym_stemmer_bad_words_analyzer",
            "fields": {
                "keyword": {
                    "type": "keyword"
                }
            }
        },
        "description": {
            "type": "text",
            "analyzer": "synonym_stemmer_bad_words_analyzer",
            "fields": {
                "keyword": {
                    "type": "keyword"
                }
            }
        },
        "other_information": {
            "type": "text",
            "analyzer": "synonym_stemmer_bad_words_analyzer",
            "fields": {
                "keyword": {
                    "type": "keyword"
                }
            }
        }
    }
}

```

---

<div class="post-metadata">

**Author:** ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)\
**Post date:** [January 16, 2024, 5:52am UTC](https://discuss.elastic.co/t/misspelled-words-or-typo-mistakes-handling-in-elastic-search-without-fuzziness/351083/7 "2024-01-16T05:52:34Z")

</div>

As the query is structured at the moment I believe it will match any document that contains either term in the query, which is why you get a lot of matches that you do not want. If you require both terms to match (fuzzy or not fuzzy) you need to change the query.

Are you expecting the two search terms to be in the same field or can they appear in different fields? If it is the first you can use an [and operator in your multi-match query clause](https://www.elastic.co/guide/en/elasticsearch/reference/8.11/query-dsl-multi-match-query.html#operator-min). If it is the latter you could instead look at [using the cross fields query type](https://www.elastic.co/guide/en/elasticsearch/reference/8.11/query-dsl-multi-match-query.html#type-cross-fields).

---

<div class="post-metadata">

**Author:** ![Mohandass](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/mohandass/32/130808_2.png) [@Mohandass](https://discuss.elastic.co/u/Mohandass)\
**Post date:** [January 16, 2024, 8:34am UTC](https://discuss.elastic.co/t/misspelled-words-or-typo-mistakes-handling-in-elastic-search-without-fuzziness/351083/8 "2024-01-16T08:34:48Z")

</div>

Ok Let me try that @Christian_Dahlqvist, Thanks. I'll update once tested !

---

<div class="post-metadata">

**Author:** ![Mohandass](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/mohandass/32/130808_2.png) [@Mohandass](https://discuss.elastic.co/u/Mohandass)\
**Post date:** [January 18, 2024, 6:25am UTC](https://discuss.elastic.co/t/misspelled-words-or-typo-mistakes-handling-in-elastic-search-without-fuzziness/351083/9 "2024-01-18T06:25:11Z")

</div>

Hi @Christian_Dahlqvist,  
We used `"type": "best_fields", "operator": "and"`, this works for 80% of our expectations. When we give `tabel` mis-spelled, then we aren't getting any results because of **fuzziness** is disabled.

When fuzziness enabled, we get some taps and other products like dinning table, table top which should not match in our case. **Taps** is matched becuase **ta** is matched against the searched keyword.

Either we need to do 2 calls to see without fuzziness and if result is not present then search with fuzziness ! Can we make a call with keeping fuzziness optional and auto-apply only if no results found or Any other solution ?

```auto
{
    "from": 0,
    "size": 10000,
    "query": {
        "bool": {
            "must": [
                {
                    "multi_match": {
                        "query": "table",
                        "fields": [
                            "title^9",
                            "keywords^8",
                            "description^7",
                            "attributes^6",
                            "other_information^5",
                            "tagged_services.name^4",
                            "category_id.name^3",
                            "sub_category_id.name^2",
                            "sub_sub_category_id.name^1"
                        ],
                        "type": "best_fields",
                        "operator": "and"
                        // "fuzziness": "AUTO"
                    }
                }
            ]
        }
    }
}

```

---

<div class="post-metadata">

**Author:** ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)\
**Post date:** [January 18, 2024, 6:43am UTC](https://discuss.elastic.co/t/misspelled-words-or-typo-mistakes-handling-in-elastic-search-without-fuzziness/351083/10 "2024-01-18T06:43:52Z")

</div>

> [@Mohandass](#):
>
> When fuzziness enabled, we get some taps and other products like dinning table, table top which should not match in our case.

Why would `dinning table` and `table top` not match if you serach for just `tabel`?

The reason `taps` would match when you search for `tabel` is probably due to your custom analyzer that includes stemming. [AUTO fuzziness](https://www.elastic.co/guide/en/elasticsearch/reference/8.11/common-options.html#fuzziness) for a 5 character search string only matches 1 edit distance. If the stemmer generates even shorter tokens this may go to 0 and require exact match. Without the stemmer in place I suspect you would not see this.

You can use the [analyze API](https://www.elastic.co/guide/en/elasticsearch/reference/8.11/indices-analyze.html) to compare how 'taps' and 'tabel' are tokenised. If you look at the length of the tokens generated and compare this to the AUTO fuzziness length table I think you will see why you are getting the match.

> [@Mohandass](#):
>
> Either we need to do 2 calls to see without fuzziness and if result is not present then search with fuzziness ! Can we make a call with keeping fuzziness optional and auto-apply only if no results found or Any other solution ?

You can not have that kind of conditional logic within a query but you can send the 2 requests in parallel in a single call using the [multi search API](https://www.elastic.co/guide/en/elasticsearch/reference/8.11/search-multi-search.html).

---

<div class="post-metadata">

**Author:** ![Mohandass](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/mohandass/32/130808_2.png) [@Mohandass](https://discuss.elastic.co/u/Mohandass)\
**Post date:** [January 18, 2024, 7:07am UTC](https://discuss.elastic.co/t/misspelled-words-or-typo-mistakes-handling-in-elastic-search-without-fuzziness/351083/11 "2024-01-18T07:07:58Z")

</div>

> [@Christian\_Dahlqvist](#):
>
> Why would `dinning table` and `table top` not match if you serach for just `tabel`?

Yes you are correct, this could be considered ! But **Taps** is not expected !

---

<div class="post-metadata">

**Author:** ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)\
**Post date:** [January 18, 2024, 7:11am UTC](https://discuss.elastic.co/t/misspelled-words-or-typo-mistakes-handling-in-elastic-search-without-fuzziness/351083/12 "2024-01-18T07:11:45Z")

</div>

What does the analyze API give? If taps stems to `tap` and table stems to `tab` (just examples) you will be searching with a 3 letter search string that allows 1 edit distance. The difference between the two stemmed strings is 1 edit distance and therefore match.

---

<div class="post-metadata">

**Author:** ![Mohandass](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/mohandass/32/130808_2.png) [@Mohandass](https://discuss.elastic.co/u/Mohandass)\
**Post date:** [January 18, 2024, 7:52am UTC](https://discuss.elastic.co/t/misspelled-words-or-typo-mistakes-handling-in-elastic-search-without-fuzziness/351083/13 "2024-01-18T07:52:20Z")

</div>

Analyze results as,

- **table** stems to **tabl**
- **tabel** stems to **tabel**
- **tap** stems to **tap**
- **taps** stems to **tap**

**Query: Table**

```auto
{
    "tokenizer": "standard",
    "filter": [
        "lowercase",
        "synonym_filter",
        "bad_words_filter",
        "stemmer_filter"
    ],
    "text": [
        "table"
    ],
    "explain" : true
}

```

**Response:**

```auto
{
    "detail": {
        "custom_analyzer": true,
        "charfilters": [],
        "tokenizer": {
            "name": "standard",
            "tokens": [
                {
                    "token": "table",
                    "start_offset": 0,
                    "end_offset": 5,
                    "type": "<ALPHANUM>",
                    "position": 0,
                    "bytes": "[74 61 62 6c 65]",
                    "positionLength": 1,
                    "termFrequency": 1
                }
            ]
        },
        "tokenfilters": [
            {
                "name": "lowercase",
                "tokens": [
                    {
                        "token": "table",
                        "start_offset": 0,
                        "end_offset": 5,
                        "type": "<ALPHANUM>",
                        "position": 0,
                        "bytes": "[74 61 62 6c 65]",
                        "positionLength": 1,
                        "termFrequency": 1
                    }
                ]
            },
            {
                "name": "synonym_filter",
                "tokens": [
                    {
                        "token": "table",
                        "start_offset": 0,
                        "end_offset": 5,
                        "type": "<ALPHANUM>",
                        "position": 0,
                        "bytes": "[74 61 62 6c 65]",
                        "positionLength": 1,
                        "termFrequency": 1
                    }
                ]
            },
            {
                "name": "bad_words_filter",
                "tokens": [
                    {
                        "token": "table",
                        "start_offset": 0,
                        "end_offset": 5,
                        "type": "<ALPHANUM>",
                        "position": 0,
                        "bytes": "[74 61 62 6c 65]",
                        "positionLength": 1,
                        "termFrequency": 1
                    }
                ]
            },
            {
                "name": "stemmer_filter",
                "tokens": [
                    {
                        "token": "tabl",
                        "start_offset": 0,
                        "end_offset": 5,
                        "type": "<ALPHANUM>",
                        "position": 0,
                        "bytes": "[74 61 62 6c]",
                        "keyword": false,
                        "positionLength": 1,
                        "termFrequency": 1
                    }
                ]
            }
        ]
    }
}

```

**Query: Tabel**

```auto
{
    "tokenizer": "standard",
    "filter": [
        "lowercase",
        "synonym_filter",
        "bad_words_filter",
        "stemmer_filter"
    ],
    "text": [
        "tabel"
    ],
    "explain" : true
}

```

**Response:**

```auto
{
    "detail": {
        "custom_analyzer": true,
        "charfilters": [],
        "tokenizer": {
            "name": "standard",
            "tokens": [
                {
                    "token": "tabel",
                    "start_offset": 0,
                    "end_offset": 5,
                    "type": "<ALPHANUM>",
                    "position": 0,
                    "bytes": "[74 61 62 65 6c]",
                    "positionLength": 1,
                    "termFrequency": 1
                }
            ]
        },
        "tokenfilters": [
            {
                "name": "lowercase",
                "tokens": [
                    {
                        "token": "tabel",
                        "start_offset": 0,
                        "end_offset": 5,
                        "type": "<ALPHANUM>",
                        "position": 0,
                        "bytes": "[74 61 62 65 6c]",
                        "positionLength": 1,
                        "termFrequency": 1
                    }
                ]
            },
            {
                "name": "synonym_filter",
                "tokens": [
                    {
                        "token": "tabel",
                        "start_offset": 0,
                        "end_offset": 5,
                        "type": "<ALPHANUM>",
                        "position": 0,
                        "bytes": "[74 61 62 65 6c]",
                        "positionLength": 1,
                        "termFrequency": 1
                    }
                ]
            },
            {
                "name": "bad_words_filter",
                "tokens": [
                    {
                        "token": "tabel",
                        "start_offset": 0,
                        "end_offset": 5,
                        "type": "<ALPHANUM>",
                        "position": 0,
                        "bytes": "[74 61 62 65 6c]",
                        "positionLength": 1,
                        "termFrequency": 1
                    }
                ]
            },
            {
                "name": "stemmer_filter",
                "tokens": [
                    {
                        "token": "tabel",
                        "start_offset": 0,
                        "end_offset": 5,
                        "type": "<ALPHANUM>",
                        "position": 0,
                        "bytes": "[74 61 62 65 6c]",
                        "keyword": false,
                        "positionLength": 1,
                        "termFrequency": 1
                    }
                ]
            }
        ]
    }
}

```

**Query: Tap**

```auto
{
    "tokenizer": "standard",
    "filter": [
        "lowercase",
        "synonym_filter",
        "bad_words_filter",
        "stemmer_filter"
    ],
    "text": [
        "tap"
    ],
    "explain" : true
}

```

**Response:**

```auto
{
    "detail": {
        "custom_analyzer": true,
        "charfilters": [],
        "tokenizer": {
            "name": "standard",
            "tokens": [
                {
                    "token": "tap",
                    "start_offset": 0,
                    "end_offset": 3,
                    "type": "<ALPHANUM>",
                    "position": 0,
                    "bytes": "[74 61 70]",
                    "positionLength": 1,
                    "termFrequency": 1
                }
            ]
        },
        "tokenfilters": [
            {
                "name": "lowercase",
                "tokens": [
                    {
                        "token": "tap",
                        "start_offset": 0,
                        "end_offset": 3,
                        "type": "<ALPHANUM>",
                        "position": 0,
                        "bytes": "[74 61 70]",
                        "positionLength": 1,
                        "termFrequency": 1
                    }
                ]
            },
            {
                "name": "synonym_filter",
                "tokens": [
                    {
                        "token": "tap",
                        "start_offset": 0,
                        "end_offset": 3,
                        "type": "<ALPHANUM>",
                        "position": 0,
                        "bytes": "[74 61 70]",
                        "positionLength": 1,
                        "termFrequency": 1
                    }
                ]
            },
            {
                "name": "bad_words_filter",
                "tokens": [
                    {
                        "token": "tap",
                        "start_offset": 0,
                        "end_offset": 3,
                        "type": "<ALPHANUM>",
                        "position": 0,
                        "bytes": "[74 61 70]",
                        "positionLength": 1,
                        "termFrequency": 1
                    }
                ]
            },
            {
                "name": "stemmer_filter",
                "tokens": [
                    {
                        "token": "tap",
                        "start_offset": 0,
                        "end_offset": 3,
                        "type": "<ALPHANUM>",
                        "position": 0,
                        "bytes": "[74 61 70]",
                        "keyword": false,
                        "positionLength": 1,
                        "termFrequency": 1
                    }
                ]
            }
        ]
    }
}

```

**Query: Taps**

```auto
{
    "tokenizer": "standard",
    "filter": [
        "lowercase",
        "synonym_filter",
        "bad_words_filter",
        "stemmer_filter"
    ],
    "text": [
        "taps"
    ],
    "explain" : true
}

```

**Response:**

```auto
{
    "detail": {
        "custom_analyzer": true,
        "charfilters": [],
        "tokenizer": {
            "name": "standard",
            "tokens": [
                {
                    "token": "taps",
                    "start_offset": 0,
                    "end_offset": 4,
                    "type": "<ALPHANUM>",
                    "position": 0,
                    "bytes": "[74 61 70 73]",
                    "positionLength": 1,
                    "termFrequency": 1
                }
            ]
        },
        "tokenfilters": [
            {
                "name": "lowercase",
                "tokens": [
                    {
                        "token": "taps",
                        "start_offset": 0,
                        "end_offset": 4,
                        "type": "<ALPHANUM>",
                        "position": 0,
                        "bytes": "[74 61 70 73]",
                        "positionLength": 1,
                        "termFrequency": 1
                    }
                ]
            },
            {
                "name": "synonym_filter",
                "tokens": [
                    {
                        "token": "taps",
                        "start_offset": 0,
                        "end_offset": 4,
                        "type": "<ALPHANUM>",
                        "position": 0,
                        "bytes": "[74 61 70 73]",
                        "positionLength": 1,
                        "termFrequency": 1
                    }
                ]
            },
            {
                "name": "bad_words_filter",
                "tokens": [
                    {
                        "token": "taps",
                        "start_offset": 0,
                        "end_offset": 4,
                        "type": "<ALPHANUM>",
                        "position": 0,
                        "bytes": "[74 61 70 73]",
                        "positionLength": 1,
                        "termFrequency": 1
                    }
                ]
            },
            {
                "name": "stemmer_filter",
                "tokens": [
                    {
                        "token": "tap",
                        "start_offset": 0,
                        "end_offset": 4,
                        "type": "<ALPHANUM>",
                        "position": 0,
                        "bytes": "[74 61 70]",
                        "keyword": false,
                        "positionLength": 1,
                        "termFrequency": 1
                    }
                ]
            }
        ]
    }
}

```

---

<div class="post-metadata">

**Author:** ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)\
**Post date:** [January 18, 2024, 8:18am UTC](https://discuss.elastic.co/t/misspelled-words-or-typo-mistakes-handling-in-elastic-search-without-fuzziness/351083/14 "2024-01-18T08:18:48Z")

</div>

> [@Mohandass](#):
>
> But **Taps** is not expected !

Yes, I agree. Based on the analysis API output I do not see why it would ever match, even with fuzziness enabled.

When you get a match containing taps, what is the fill contents of the document? Is there some contents elsewhere that could be matching?

It would help if you could provide a full document that is returned incorrectly together with full mappings so the issue can be reproduced locally.

You could also run your query while only querying a single field at a time to see which one it is that matches. This may help to narrow it down. Note that any position may be edited due to fuzziness, so words that match may not need to even start with `ta`. Words like `cable` or `able` may end up matching as well.

---

<div class="post-metadata">

**Author:** ![Mohandass](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/mohandass/32/130808_2.png) [@Mohandass](https://discuss.elastic.co/u/Mohandass)\
**Post date:** [January 18, 2024, 8:33am UTC](https://discuss.elastic.co/t/misspelled-words-or-typo-mistakes-handling-in-elastic-search-without-fuzziness/351083/15 "2024-01-18T08:33:23Z")

</div>

> [@Christian\_Dahlqvist](#):
>
> Words like `cable` or `able` may end up matching as well.

Is there a way to avoid results containing `cable or able` when **table** searched ?

---

<div class="post-metadata">

**Author:** ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)\
**Post date:** [January 18, 2024, 8:45am UTC](https://discuss.elastic.co/t/misspelled-words-or-typo-mistakes-handling-in-elastic-search-without-fuzziness/351083/16 "2024-01-18T08:45:13Z")

</div>

Not that I am aware of, at least not in the clause itself. Fuzzy matching does not allow you to control which parts of a string may be edited.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [February 15, 2024, 8:45am UTC](https://discuss.elastic.co/t/misspelled-words-or-typo-mistakes-handling-in-elastic-search-without-fuzziness/351083/17 "2024-02-15T08:45:56Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
