Enable Ascii folding when searching for names with special characters

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

Release notes

Users can now search for names such as Rémy Coutable (@rymai) and actually find the person they are searching for while not needing to find the special é character but only by typing e.

Problem to solve

Searching for users anywhere in Gitlab does not normalize the letters according to the search best practices. This makes it difficult to find the right user and requires to memorize users with their username instead of their first or lastname.

before after
image image

Proposal

If the search happens with Elastic Search, use the Asciifolding token filter to normalize these characters so that on index time these characters are indexed as their regular ascii character. https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-asciifolding-tokenfilter.html

If the search happens with MySQL, and indexing is in Ruby, one can use ActiveSupport::Inflector.transliterate to normalize these characters before sending it to MySQL tables.

Intended users

All of the users or unknown - new here, please help me out. I think everybody uses the user search 😄

Feature Usage Metrics

I need some help here to fill this in. I would assume you would need to track the amount of aborted searches that do not convert in an actual name. When this feature is deployed, the amount of conversions that are abandoned should decrease.

This page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.

Edited by 🤖 GitLab Bot 🤖