Senura, do you have any updates on this issue? I'm trying to get WithAndAsDefaultOperator() to work with UsingSynonyms() as well. It's not working as expected.
Unfortunately there are a lot of problems with Search & Navigation and synonyms.
Install this package: https://github.com/episerver/EPiServer.Labs.Find.Toolbox
It's not available in the Optimizely NuGet feed, but you'll find the package in the github repo
Then replace .UsingSynonyms() with .UsingSynonymsImproved()
Among other improvements, it should fix:
Tomas,
Thank you for the response. Since posting this, I've tried this package and like the results when using .WithAndAsDefaultOperator() (14 results). Unfortunately when adding .UsingSynonymsImproved() it seems to give the same number of results as when not using this package (1080).
It seems like Episerver has identified this as an issue for quite some time (2 years) according to this:
https://support.optimizely.com/hc/en-us/articles/115004105823
Do you have any insight as to if Episerver is working on integrating the lab work into a supported package?
Cheers,
Mark
If I'm not mistaken I believe that you can go around the issue by not using InAllField, instead specify all the fields after WithAndAsDefaultOperator.
Example:
.WithAndAsDefaultOperator()
.InField(...)
.AndInField(...)
.UsingSynonyms()
I have created a 'one way' synonym as “dog” > "animal”.
The above both queries should return the same result set (Many results) regardless of the word order.
My search implementation is like below,
This issue is not reproducible when,
This means there is an incompatibility/issue with the UsingSynonyms() when used along with the WithAndAsDefaultOperator().
Is this a known issue ?
Note: I have found that there is an issue with multi-words synonyms and the WithAndAsDefaultOperator. But in my case, it is not about multi-word synonyms. But I do not know whether my issue is happening because of the same issue which fuels the multi-words synonyms issue.
Thanks.
E.g.
"dog+word1+word2" - gives 0 results !
"dog" - gives many results as expected.
"word1+dog+word2" - gives many results as expected.
"word1+word2+dog" - gives many results as expected.