【问题标题】:Azure Search synonyms not reflecting in resultsAzure 搜索同义词未反映在结果中
【发布时间】:2017-08-23 02:17:20
【问题描述】:

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

我使用以下负载更新了我的同义词映射 {
"名称" : "synonymmap1",
“格式”:“solr”,
“同义词”:

"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 个)- 是否会影响性能?

【问题讨论】:

  • @Liam Cavanagh - MSFT:请指导

标签: azure-cognitive-search synonym


【解决方案1】:

我是来自 Azure 搜索的 Nate。先回答问题:

a) 是的,您应该这样做。如果“比尔”和“威廉姆斯”被定义为同义词。搜索任何一个都应该产生相同的结果。

b) 它总是在列级别。您使用名为“synonymMaps”的字段/列属性来指定要使用的同义词映射。有关详细信息,请参阅https://azure.microsoft.com/en-us/blog/azure-search-synonyms-public-preview/ 中的“在索引定义中设置同义词映射”。

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

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

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

谢谢,

内特

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-14
    • 1970-01-01
    • 2019-06-22
    • 1970-01-01
    • 2020-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多