Azure搜索中的同义词映射,同义词短语

Shraibikus

我正在尝试在Azure搜索中使用同义词映射,但遇到了问题。我想将多个单词和短语映射到一个搜索查询中。

换句话说,当我搜索其中之一时:

产品123product0123产品0123

我希望搜索返回查询短语的结果:

产品123

阅读了教程之后,一切似乎都非常简单。

我正在使用.Net Azure.Search SDK 5.0,所以我做了以下工作:

var synonymMap = new SynonymMap
{
     Name = "test-map",
     Format = SynonymMapFormat.Solr,
     Synonyms = "product 123, product0123, product 0123=>product123\n"
};  
_searchClient.SynonymMaps.CreateOrUpdate(synonymMap);

我在搜索字段之一上使用地图

index.Fields.First(x => x.Name == "Title").SynonymMaps = new[] {"test-map"};

到现在为止还挺好。现在,如果我搜索product0123,我将获得与product123相同的结果但是,如果我搜索短语产品123产品0123,则会得到一堆无关的结果。这几乎就像同义词映射不适用于多词项。

所以,我想我的问题是,我是否正确使用了同义词映射表,或者这些映射仅适用于单个单词的同义词?

Nate ko

短语product 123是否product 0123用双引号引起来?短语必须用双引号("product 123")表示。双引号是短语搜索的运算符,对于同义词来说,双引号可确保对短语中的术语进行分析并与同义词图中作为短语的规则匹配没有它,查询解析器会将未加引号的短语分隔为单个词,然后尝试对单个词进行同义词匹配。product OR 123在这种情况下,查询变为

本文档说明了如何解析查询(阶段1)和分析查询(阶段2)。同义词的应用在第二阶段完成。

要回答评论中的第二个问题,不幸的是,必须使用双引号来匹配多词同义词。但是,作为应用程序开发人员,您可以完全控制传递给搜索服务的内容。例如,给定product 123来自用户的查询,您可以在幕后重新编写查询,以提高准确性和将查询传递给搜索服务之前对其进行重新调用短语搜索或邻近搜索可用于提高精度,通配符(例如模糊或前缀搜索)可用于提高查询的查全率。您将查询重写为product 123类似的内容,"product 123"~10 product 123并且同义词将应用于查询的短语部分。

内特

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章