By federated autocomplete (pattern name from this question), I mean one of this:
Background: I am working on an application where there are "types", for example people
, documents
, transactions
, etc.
In a standard search engine/autocomplete without any grouping, we simply display a list of autocomplete items and sort them according to a score the search engine assigns. However, I feel that this can be improved upon by grouping results of the same type together, like Facebook.
Let's say we have a follow list returned by the search engine like so (ranked by relevance):
People
: John SmithDocument
: Invoice-1245632.pdfPeople
: David SmithPeople
: Jenny SmithPeople
: Jenny CitizenDocument
: Meeting-9876.pdfBug Ticket
: Platform-14252Bug Ticket
: Module-Commerce-65322
From the above, we have 3 types: People
, Document
and Bug Ticket
. Sorting the items within each group using the score is easy, but how do we sort the groups?
In the facebook example above, it looks like they have fixed the sorting of groups so that Groups
are the most important followed by People
, Pages
and Apps
and perhaps a few other groups.
Here are some ideas I have:
- Sort the groups using alphabetical order
- Sort by the highest score of one of its child items
Is it even a good idea to sort the groups rather than fix them? By fixing them, it would be consistent, so the user can say Ah, people results always comes before page results
.
Any real world example of sorting in federated autocomplete and any research/evidence on group sorting would be much appreciated too.