Improving synonyms and overall search experience
Is your Search & Navigation (Find) implementation affected by the limitations of the current synonym functionality and/or would you like to improve upon the overall search experience?
Check out https://github.com/episerver/EPiServer.Labs.Find.Toolbox
Setup and configuration is simple. Install NuGet Package and then there are a couploe of lines of code to get it working.
- An improved synonym implementation
- MatchPhrase and MatchPrefixPhrase
- FuzzyQuery and WildcardQuery
All can be used together or independently and depends on the .For() call for the original query
Toolbox also comes with support for Elastic Search's MinimumShouldMatch. With MinimumShouldMatch it's possible to set or or more conditions for how many terms (in percentage and absolutes) should match. If you specify 2<60% all terms up to 2 terms will be required to match. More than 2 terms 60% of the terms are required to match. If you specify 2 all terms up to 2 terms will be required to match. This is prefered over using purely OR or AND where you will either get too many hits (OR) or no hits (AND). MinimumShouldMatch() has to be called before calling UsingImprovedSynonyms() to be utilized.
To improve relevance and search experience even further support for Elastic Search's MatchPhrase, MatchPrefixPhrase, FuzzyQuery and WildcardQuery has been added.
PhraseBoost() and PhrasePrefixBoost() boosts the relevance for exact phrase matches and phrase matches in the beginning of fields.
FuzzyMatch() finds terms even if the wording is not quite right. WildcardMatch() find terms even if they are not completed or are part of another word. The two latter are only applies to terms longer than 2 characters. Wildcard is only added to the right. Wildcard matches gets a negative boost.
Feedback and input are welcome and don't hesitate to contribute if you'd like.
Please note that this project is not officially supported by Episerver just like most EPiServer.Labs projects.
Should be considered stable and is currently used in production environments.
Bugfixes and improvements and new version 1.0.9.
Project renamed to Find Toolbox @ https://github.com/episerver/EPiServer.Labs.Find.Toolbox
Now with new features to improve search relevance and overall search experience even further.