# Uax\_url\_email tokenizer not recognising valid emails with no dots on the email domain

**URL:** <https://discuss.elastic.co/t/uax-url-email-tokenizer-not-recognising-valid-emails-with-no-dots-on-the-email-domain/364166>\
**Category:** Elasticsearch\
**Created:** [July 31, 2024, 7:25pm UTC](https://discuss.elastic.co/t/uax-url-email-tokenizer-not-recognising-valid-emails-with-no-dots-on-the-email-domain/364166 "2024-07-31T19:25:55Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Carlos\_Cambon](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/carlos_cambon/32/125037_2.png) [@Carlos\_Cambon](https://discuss.elastic.co/u/Carlos_Cambon)\
**Post date:** [July 31, 2024, 7:25pm UTC](https://discuss.elastic.co/t/uax-url-email-tokenizer-not-recognising-valid-emails-with-no-dots-on-the-email-domain/364166/1 "2024-07-31T19:25:55Z")

</div>

Using version 7.9. And having the following settings:

```auto
                      "email_filter": {
                            "type": "pattern_capture",
                            "preserve_original": "true",
                            "patterns": [
                                "([^@]+)",
                                "(\\p{L}+)",
                                "(\\d+)",
                                "@(.+)"
                            ]
                        }
                    },
                    "analyzer": {
                        "email_analyzer": {
                            "filter": [
                                "email_filter",
                                "lowercase"
                            ],
                            "tokenizer": "uax_url_email"
                        }
                    }

```

When doing an \_analyze query:

```auto
{
    "analyzer": "email_analyzer",
    "text" : "myemail@gmail"
}

```

I get the following tokens:

```auto
{
    "tokens": [
        {
            "token": "myemail",
            "start_offset": 0,
            "end_offset": 7,
            "type": "<ALPHANUM>",
            "position": 0
        },
        {
            "token": "gmail",
            "start_offset": 8,
            "end_offset": 13,
            "type": "<ALPHANUM>",
            "position": 1
        }
    ]
}

```

Observe that it is not being recognised as EMAIL, it is showing ALPHANUM and I don't get the original token "myemail@gmail"

But when doing an \_analyze query on an email with a dot on the domain:

```auto
{
    "analyzer": "email_analyzer",
    "text" : "myemail@gmail.com"
}

```

I get the expected response, being recognised as an EMAIL and "[myemail@gmail.com](mailto:myemail@gmail.com)" as the original token as well.

But why an email without a dot on the domain, which is valid, is not being recognised as EMAIL by the uax\_url\_email tokenizer?

---

<div class="post-metadata">

**Author:** ![Kathleen\_DeRusso](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/kathleen_derusso/32/132039_2.png) [@Kathleen\_DeRusso](https://discuss.elastic.co/u/Kathleen_DeRusso)\
**Post date:** [August 2, 2024, 8:56pm UTC](https://discuss.elastic.co/t/uax-url-email-tokenizer-not-recognising-valid-emails-with-no-dots-on-the-email-domain/364166/2 "2024-08-02T20:56:52Z")

</div>

The email tokenization comes out of Lucene, which uses [strict domain name labels](https://github.com/bighaidao/lucene/blob/bd5d75e31526b599296c3721bc2081a3bde3e251/lucene-core/src/main/jflex/org/apache/lucene/analysis/standard/UAX29URLEmailTokenizerImpl.jflex#L94).

---

<div class="post-metadata">

**Author:** ![Carlos\_Cambon](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/carlos_cambon/32/125037_2.png) [@Carlos\_Cambon](https://discuss.elastic.co/u/Carlos_Cambon)\
**Post date:** [August 5, 2024, 3:01pm UTC](https://discuss.elastic.co/t/uax-url-email-tokenizer-not-recognising-valid-emails-with-no-dots-on-the-email-domain/364166/3 "2024-08-05T15:01:30Z")

</div>

Thank you @Kathleen_DeRusso
