[wp-meta] [Making WordPress.org] #2753: Plugin directory search sorting and filtering

Making WordPress.org noreply at wordpress.org
Fri Apr 21 21:42:14 UTC 2017

#2753: Plugin directory search sorting and filtering
 Reporter:  tellyworth        |       Owner:
     Type:  enhancement       |      Status:  new
 Priority:  normal            |   Milestone:  Plugin Directory v3 - Future
Component:  Plugin Directory  |  Resolution:
 Keywords:                    |

Comment (by gibrown):

 Some proposals for the scope of this change.

 There are a number of open issues that involve browsing, sorting, or
 finding plugins that are orthogonal to just searching. Here's a list of
 the ones I found:
  - #2624 : view all the plugins for a particular author
  - #2631 : find recently updated plugins
  - #2653 : /browse/new and /browse/updated and /browse
  - #496 : /browse/popular - this one is really about deep paging

 I'd like to propose that we solve all of these by adding
 faceting/filtering and then redirect from those paths to the search with
 the appropriate parameters for sorting/filtering. Some of these are kinda
 narrow use cases, but there is some overlap between them all.

 List of features we need to add to search to satisfy all of these:
 - matching all plugins with search. If the search is blank then we run a
 match_all query and get back everything based on whatever filters/sorting
 are set.
 - filtering by author login
 - descending sort by update date range
 - either descending sort by plugin first publish date, or a filter on
 plugins created in the last three months
 - descending sort by active_installs or rating, or a combo. (or maybe the
 default alg with a match_all will work ok?)

 Those use cases drive some decisions on what to allow sorting on. I'd
 suggest we support three cases (there are dozens of possibe fields we
 shouldn't add too many):
 - Current sort. More or less most popular, though maybe we should be
 stronger and call it "recommended" or something? It pretty heavily weights
 getting users support and plugins that stay up to date.
 - Recently updated - sort by plugin_modified
 - Average Rating descending - this should probably be a combo of number of
 reviews and ave rating so a single 5 star rating does not put a plugin
 above one with a 4.9 rating from 1000 users. #2686 has some interesting
 thoughts in it.

 I left out "sort by date_gmt" with the thought that a filter can solve
 that and having a filter for that would make for both a better user
 experience and help new plugins find users. I was thinking of something
 similar to this Amazon "New and Upcoming" facet


 It feels like it does a better job at inviting the user to click than a
 sorting option would because it gives you a promise that there is
 something inside.

 Some other proposed facets:
 - Average rating: (just stolen from Amazon) 1 and up, 2 and up, 3 and up,
 4 and up.
 - WP version: 4.8, 4.7, 4.6, ... (probably only show the 4 most recent
 versions though the filtering through url hacking should support any
 - Active installs. We should probably adjust our bins from what the
 plugins use. Maybe 100,000+, 10,000-99,999, 1,000-9,999, 100-999, 1-99
 - Percentage of support threads resolved: 75%+, 50-75%, 25-75%, 0-25%
 - Category: there was past discussion about things like free, paid, etc
 which it sounds like is desirable, but not yet defined. If we define it we
 could add them here.
 - Percentage of plugin strings translated into the current locale - This
 data is not in the index, but it does exist:

 That all kinda feels like a lot to me and I wonder if we should cut some
 to simplify for a first release and see how it goes (eg do we need WP
 version? Doesn't feel like it would mean much to an end user). Other
 fields I've thought about:
 - Authors - would be a lot of noise. We should support filtering on it
 though and fix the author search
 - Tags look really noisy from what I have seen so far.
 - Total number of updates a plugin has had - kinda interesting to exclude
 plugins that rarely get updated
 - How many months has the plugin been getting updated for - maybe a better
 version of the above because less easy to abuse, but I'm not sure if it is
 useful enough

 Other ideas?

 A note on deep paging. Elasticsearch imposes a paging limit of 10,000
 results. I don't really think there is a good use case for going that far,
 but 10k seems to work ok and not break so I don't care. We will start to
 hit this though if we are matching on everything. I think that is fine
 given that we are now giving the user a bunch of other ways to sort and
 filter through results.

 For mobile, do we just hide the faceting sidebar? At most allow a sorting
 option? Or maybe the sidebar floats to the bottom of the page?

 Some thoughts on timing. This is both a significant and also not that hard
 project. It is significant in that we need to change the design to add a
 sidebar, a sorting option, and add a bunch of url param handling. It is
 not hard in that there is a bunch of code for doing faceting and filtering
 that is destined for Jetpack in the next month or so that we can build off
 of. If we make some decisions around design over the next month then I can
 push ahead with the implementation in a pretty straightforward manner
 (once we update Jetpack).

Ticket URL: <https://meta.trac.wordpress.org/ticket/2753#comment:1>
Making WordPress.org <https://meta.trac.wordpress.org/>
Making WordPress.org

More information about the wp-meta mailing list