Use project stars to rank when searching and listing in UI elements

Problem to solve

There are many UI components to list / search / filter projects and ordering the results in alphabetical order helps very little.

Usually, the one you want is the "more popular version", vs the forked ones you have access (unless you are the owner of the forked one).

Further details

This is a picture of the UI combo to select a project, in the search page:

project_list_filtering

While for Sean, Nick and Drew, having theirs appear first is what they really want, it's the truth on my use-case.

This is a picture of searching for a project using the top bar Projects \/ component:

topbar_project_listing

The perfect match is not the first one displayed.

Proposal

I understand we have limitations on the database side because:

  1. We are not using ElasticSearch for it
  2. MySQL parity (we don't support MySQL anymore)
  3. PostgreSQL is not as powerful as ElasticSearch

But maybe we can have overall better results if we ORDER BY start_count, name to have MySQL parity, and/or start using tsvector magic to do proper full-text when using Postgres and tinker with star_count whether its a fork or not etc.

What does success look like, and how can we measure that?

  1. Searching for a project should bring the more popular first
  2. We should display the perfect match or "perfect partial match" first
  3. Optional: we should rank up own forks first when both match, despite star_count

Links / references

http://rachbelaid.com/postgres-full-text-search-is-good-enough/

Edited Aug 22, 2019 by Gabriel Mazetto
Assignee Loading
Time tracking Loading