Последние несколько часов я пытался заставить работать синонимы в Elastic Search
, но пока не получилось.Когда я выполняю поиск, синонимы никогда не индексируются.
Ниже приведена часть кода, где, как мне кажется, я могу ошибиться.Пожалуйста, посмотрите, и любая помощь будет высоко ценится.
var createIndexTask = Client.CreateIndexAsync(synonymsindexname, i => i
.Settings(s => s
.Analysis(a => a
.TokenFilters(tf => tf
.Synonym("my_synonym", sf => sf
.Format(SynonymFormat.Solr)
.SynonymsPath("synonyms/solrsynonyms.txt")
)
)
.Analyzers(an => an
.Custom("my_analyzer", ca => ca
.Tokenizer("standard")
.Filters("lowercase", "stop", "my_synonym")
)
)
)
)
.Mappings(m => m
.Map<ClinicalCode>(c => c
.AutoMap()
.Properties(p => p
.Completion(comp => comp
.Contexts(ctx => ctx
.Category(csug => csug
.Name("ShortDescription")
.Path(x => x.ShortDescription)
)
)
.Name(n => n.Suggests)
.Analyzer("simple")
)
.Text(t => t
.Name(n => n.LongDescription)
.Analyzer("my_analyzer")
.CopyTo(ct => ct
.Field("allFields")
)
)
.Text(t => t
.Name(n => n.ShortDescription)
.Analyzer("my_analyzer")
.CopyTo(ct => ct
.Field("allFields")
)
)
.Text(t => t
.Name(n => n.ICDCode)
.Analyzer("my_analyzer")
.CopyTo(ct => ct
.Field("allFields")
)
)
.Keyword(k => k
.Name(n => n.ICDCode)
)
)
)
)
);