Page MenuHomePhabricator

Allow badges to be searched by name
Closed, ResolvedPublic

Description

Currently, you can't search for badges by name. This isn't a big deal, but we have reasonable infrastructure for it now, and it would make providing a typeahead for D15544 easier.

The substring search infrastructure is called "ngrams" (the current implementation is trigrams, i.e. substrings of three characters). T9979 has a lot of technical discussion about it.

D15389 is a recent example of converting an object to use the ngrams infrastructure. The basics are:

  • Make all the changes that change makes.
  • Run the migration (this will queue reindexing tasks which will rebuild the search index).
  • Run the daemons for a little bit (so they actually run the tasks).
  • You should get a "Name Contains" field in the search UI.
  • Use that to search for badges by name.

You can look in the ngrams table to make sure the first few steps are working.

Also, the name column on badges will need to be converted from text255 to sort255. Otherwise, letter case will be considered, so searching for "EXTREME" won't find "eXtReMe".