One of the main tasks for Add Ons is to implement a better search algorithm.
This post is a proposed solution for the issue here .
Now, when it comes to search criteria, we choose to limit our search to the type, tag, name/title, description of a module.
The algorithm also allows a bit of flexibility/mistakes while typing the search query.
The following points describe the circumstance and the action taken under that scenario:
If Query matches uid exactly then this search result is given the highest weight!
Query which matches title of module perfectly is given highest weight
Query which matches tag exactly given an equally high weight
* Ex: Query=”Form-Entry” and tag =”Form-Entry” then that module gets the top rank.
Query which is sub string of the title is also given a medium weight
* Ex: ref sub string of reference application ( Current algorithm is not implemented like this and hence it gets pushed down)
Query matching title using fuzziness=1(allows one spelling mistake) given low weight
Query which matches description as sub string given low weight
- Reason is that many modules might contain the query as part of their description but only one will have it in it’s name and that module is given highest weightage. Example: “Reference Application” term is in the description of most ref app modules but it actually matches exactly with Reference application module. Moreover, when query=”ref”, modules with “ref “ in their title should rank higher than the ones with the term in their description
Query matching description using fuzziness given very low weight
Apart from the above :
- Modules which are deprecated or inactive given least weight
If would like to add /suggest any changes, please feel free to reply to this post