gpt4 book ai didi

azure-cognitive-search - Azure 搜索中的同义词映射,同义词短语

转载 作者:行者123 更新时间:2023-12-05 02:15:46 25 4
gpt4 key购买 nike

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

换句话说,当我搜索:

产品 123产品 0123产品 0123

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

product123

看完tutorial一切看起来都很简单。

我使用的是 .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);

然后我在其中一个搜索字段上使用 map

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

到目前为止一切顺利。现在,如果我搜索 product0123,我会得到 product123 的结果,正如我所期望的那样。但是,如果我搜索短语 product 123product 0123,我会得到一堆不相关的结果。就好像同义词映射不适用于多词项一样。

所以我猜我的问题是,我是不是错误地使用了同义词映射,或者这些映射只适用于单个词的同义词?

最佳答案

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

This documentation解释如何解析查询(第 1 阶段)和分析(第 2 阶段)。同义词的应用在第二阶段完成。

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

内特

关于azure-cognitive-search - Azure 搜索中的同义词映射,同义词短语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51200616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com