Azure 搜索同义词未反映在结果中

Azure Search synonyms not reflecting in results

同义词在 Azure 搜索中似乎不起作用

我用以下负载更新了我的同义词映射 {
"name" : "synonymmap1",
"format" : "solr",
"synonyms" :

"Bob, Bobby,Bobby\n
Bill, William, Billy\n
Harold, Harry\n
Elizabeth, Beth\n
Michael,Mike\n
Robert, Rob\n"

}

然后当我检查 synonymMap 时,我看到了这个

{

"@odata.context": 
"https://athenasearchdev.search.windows.net/$metadata#synonymmaps",
"value": [
    {
        "@odata.etag": "\"0x8D4E7F3C1A9404D\"",
        "name": "synonymmap1",
        "format": "solr",
        "synonyms": "Bob, Bobby,Bobby\n\r\n    Bill, William, Billy\n\r\n    Harold, Harry\n\r\n    Elizabeth, Beth,Liza, Elize\n\r\n    Michael,Mike\n\r\n    Robert, Rob\n\r\n"
    }
]

}

但是,同义词似乎不起作用。例如,搜索 Mike 和 Michael 的结果不相同?

我知道这是一个预览功能,但需要以下方面的帮助

a) 一旦定义为同义词,我们不应该期望所有同义词变体的结果和搜索分数完全相同

b) 这些同义词是否可以在列级别应用(例如仅名字而不是地址)- 或者它是否始终贯穿整个文档

c) 如果我们有大量同义词(超过 1000 个)- 是否会影响性能?

我是 Azure Search 的 Nate。先回答问题:

a) 是的,你应该。如果 "Bill" 和 "Williams" 被定义为同义词。搜索其中任何一个都应该产生相同的结果。

b) 它总是在列级别。您使用名为 'synonymMaps' 的 field/column 属性 来指定要使用的同义词映射。有关详细信息,请参阅 https://azure.microsoft.com/en-us/blog/azure-search-synonyms-public-preview/ 中的 "Setting the synonym map in the index definition"。

c) 你的意思是一个词有超过 1000 个同义词吗?或同义词映射中的 1000 个同义词规则?前者肯定会影响性能,因为搜索查询将扩展到 1000 个术语。事实上,您不能在一条规则中定义超过 50 个同义词。后者,同义词映射中的 1000 条规则应该不会影响性能,除非规则不断更新。

关于您关于同义词不起作用的评论,根据您的问题,我想知道索引定义中是否启用了同义词功能。你能检查一下吗?如果它不起作用,请随时给我发电子邮件到 nateko@microsoft.com。

您在检索到的同义词映射中看到的无关换行符可能是由您在上传时使用的 http 客户端插入的。某些 http 客户端,例如 fiddler 和 postman,会在行尾自动插入换行符,因此您不必自己做。

谢谢,

内特