Proposed Search algorithm for Add-On Index

So, we have been working on this for a while now. The main issue was ensuring that all the features work well together.

For example: If we give high rank to a name match then sometimes certain tag matches would be mistaken for a name match and hence the module with those tags would not show up first.

The solution? Trial and error! This and a complete understanding of what each function does is the does only solution. The same is also mentioned in an elasticsearch documentation! :astonished: So after a few trials , we have come up with a proper algorithm which does the job.

Here are the differences:

1. Perfect match of tags

OLD:

NEW

Difference?

All the modules with the tag ranked before any other module.

  1. Perfect match of UID :

OLD:

New:

Difference? Added much more weight to UID and also mad it non analysed.

3. Allow minor spelling mistakes:

4.Perfect title match comes first:

5.Rest of the results also make more sense: OLD:

NEW:

6.Partial matching improved :

OLD:

NEW:

Another example:

Search query: “Reporting”

Results:

For any questions or suggestions, you may contact me, @darius or @mseaton :slight_smile: