Try our conversational search powered by Generative AI!

Unwanted synonyms in EPiServer Find

Vote:
 

We have detected some words are registered as synonyms without us adding them manually. One example is "rus" (Norwegian for "intoxication") and "fyll" (Norwegian for binge drinking and "fill" as in "fill in the form").

Is this documented anywhere, and how do we get rid of it?

#180341
Jul 06, 2017 23:10
Vote:
 

Just guessing here, but I think it might be because of the decompund analyzer. Try using the standard synonym analyzer: 

.For("my query", query => query.Analyzer = Language.Norwegian.SynonymAnalyzer)
#180352
Jul 07, 2017 9:01
Vote:
 

Thanks Per Magne!

I tried your solution but this only made my search use ONLY the "magic" synonym analyzer and not the synonyms defined in EPiServer CMS Find Admin.

I use code similar to the following:

var query = searchClient.UnifiedSearch()
.For(searchQuery)
.WithAndAsDefaultOperator()
.UsingSynonyms()


This gives me both word decompound synonyms, manual synonyms I have defined in EPiServer CMS Find Admin, and unwanted synonyms I'm not able to understand where comes from. Examples of unwanted synonyms: searching for "rus" gives results for "fyll", searching for "døv" gives results for "lurer" etc. As a side effect, when I define "resirkulering" as synonym to "kildesorting" the synonym doesn't work at all.

If I call UnifiedSearch() with Language.None like this:

var query = searchClient.UnifiedSearch(Language.None)
.For(searchQuery)
.WithAndAsDefaultOperator()
.UsingSynonyms()

all my custom synonyms work, no strange synonyms, but I lose word decompound synonyms.

#180670
Jul 20, 2017 13:23
Vote:
 

We have this issue as well. Some synonyms have magically appeared and we can't get rid of them (and they are not shown in the synonym interface). On top of that, the generated synonyms are ridicilous.. 

I tried to change the analyzer as mentioned above, but to no avail. There must be an option to turn this off? Our query looks similar to this:

searchResult = _client.Search<ISearchContent>()
                    .For(query)
                    .UsingSynonyms()                                                                                                   
                    .StatisticsTrack();
#181678
Aug 28, 2017 12:32
Vote:
 

Hi Thomas,

Did you find a solution to this?

This causes problems when using auto-boosting as well, since irrelevant synonyms will receive the same boosting.

#190620
Apr 13, 2018 9:39
Vote:
 

Hi

Guessing this is still an issue? Did anyone find a way to disable "magic" synonyms when using UnifiedSearch?

var lang = Languages.GetSupportedLanguage(ContentLanguage.PreferredCulture); //Norwegian

var query = SearchClient.Instance.UnifiedSearch(lang)
  .For(q)
  .UsingUnifiedWeights()
  .WithAndAsDefaultOperator()
  .UsingSynonyms();
            

#206252
Aug 08, 2019 14:29
Per Atle Holvik - Aug 08, 2019 14:44
If the issue you are having is due to decomponding, this is turned off by default from Find 12.3.0, see https://world.episerver.com/documentation/developer-guides/find/architecture-and-languages/.
henskjold73 - Aug 12, 2019 8:44
I don't think decomponding is the problem. As an example, I search for the Norwegian word for 'news', 'nyhet' and get hits on words containing the Norwegian word for 'time', 'tid'. I have no synonyms registered for Find to cause this.
Vote:
 

Any solution to this yet? I am searching (unified search) for «seng» (the Norwegian word for «bed») and is getting search results for «bedrifter» (the Norwegian word for «companies»). This makes no sense.

If I turn of synonyms, the problem goes away. But then I loose the synonymes we have defines in Episerver Find UI. I do not want those synonyms.

I have tried this, but then I loose stemming. When searching for «bedrift», I want the search results to include the plural form «bedrifter».

SearchClient.Instance.UnifiedSearch().For(model.Query, q => q.Analyzer = Language.Norwegian.Analyzer);
#218927
Mar 25, 2020 6:36
Vote:
 

Hi all,

There is a built-in synonym list for Norweigan.
Since end of last year there is a feature request related to this. "FIND-6651 Be able to turn off or manage built-in synonyms"

Currently there is no ETA on this but I've sent an inquiry.

#219056
Mar 28, 2020 10:32
Vote:
 

Is there no workaround?

Is this built-in synonym list only used for Unified search? Or «normal» search too?

#219057
Mar 28, 2020 10:34
Vote:
 

Hi Tomas

No workaround, other than disabling the use of synonyms (.UsingSynonyms()) which perhaps is not a workaround.
It's used when synonym analyzer is used which means whenever you use .UsingSynonyms().

#219058
Mar 28, 2020 11:33
Vote:
 

I need the synonyms that are added in the Episerver Find UI, so that is not an option.

#219059
Mar 28, 2020 11:54
dada - Jun 24, 2020 20:26
If this is still a concern for you check out my latest blog post.
https://world.episerver.com/blogs/dada/dates/2020/6/improving-synonyms-and-overall-search-experience/
It will give you synonym without built-in synonyms and some more.
Vote:
 

Thank you dada - I am having problems with EPiServer.Labs.Find.ImprovedSynonyms.

My code, copied from your example at github:

            UnifiedSearchResults results = SearchClient.Instance.UnifiedSearch(Language.English)
                .For(model.Query)
                .UsingSynonymsImproved()
                .GetResult();

Build error:
Error CS1061 'IQueriedSearch<ISearchContent, QueryStringQuery>' does not contain a definition for 'UsingSynonymsImproved' and no extension method 'UsingSynonymsImproved' accepting a first argument of type 'IQueriedSearch<ISearchContent, QueryStringQuery>' could be found (are you missing a using directive or an assembly reference?) 

I have both the reference and the using directive.

#224751
Edited, Jun 25, 2020 9:17
dada - Jun 25, 2020 10:31
Do you got
using EPiServer.Find.Cms;
?

Maybe it's not obvious or always used and I will add it to the instructions.
Tomas Hensrud Gulla - Jun 25, 2020 21:38
I had the using statement, but my project were using .NET 4.6.1.
Upgrading to 4.6.2 seemed to fix the build error, but I can't upgrade right now.
Does that make sense?
dada - Jun 25, 2020 22:23
Oh I see. It's configured for 4.6.2 specifically but I will change that to maybe 4.6.x and higher.
dada - Jun 26, 2020 7:19
I've updated code and NuGet package. Should be able to use 4.6.1 and higher.
Tomas Hensrud Gulla - Jun 26, 2020 11:34
Excellent! Thank you!
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.