hub
hub copied to clipboard
feat: Search by plugin variant/maintainer
It would be nice to be able to search for plugins by variant/maintainer.
Also, there is an small issue where if the search term matches both a keyword and a plugin name (i.e. matatika
), depending on the type of plugin, the one with the matching name is forced down the search results list. This feature could also address this by respecting the defined order of plugin text fields to search by (i.e. name
, then label
, then variant
, and so on).
It would be nice to be able to search for plugins by variant/maintainer.
fwiw that's probably an easy win with little changes to the graphql query and the joined text fiels in Search.vue
Also, there is an small issue where if the search term matches both a keyword and a plugin name (i.e.
matatika
), depending on the type of plugin, the one with the matching name is forced down the search results list. This feature could also address this by respecting the defined order of plugin text fields to search by (i.e.name
, thenlabel
, thenvariant
, and so on).
but this is probably a heavier lift if I understand it correctly. Does this mean something like "if the plugin name matches the search term, then show it first regardless of plugin type"?
The problem is that for historical (i.e. tech debt) reasons, search terms are currently matched against a concatenation of a bunch of plugin fields into a single string.
fwiw that's probably an easy win with little changes to the graphql query and the joined text fiels in
Search.vue
Yeah, I did have a look and making variant
searchable is pretty simple, but in the case of matatika
the actual utility with that name is sorted below a bunch of our extractors (hence the other requirement).
Does this mean something like "if the plugin name matches the search term, then show it first regardless of plugin type"?
Yep, pretty much - maybe for label
too. I was thinking about ordering plugins by the type of the text field (i.e. name
or description
) the search term best matches, but I can't say how complex that would be to implement or how performant it will be.