同义词似乎在Azure搜索中不起作用
我使用以下有效负载更新了我的同义词映射
{
“name”:“synonymmap1”,
“格式”:“solr”,
“同义词”:
"Bob, Bobby,Bobby\n
Bill, William, Billy\n
Harold, Harry\n
Elizabeth, Beth\n
Michael,Mike\n
Robert, Rob\n"
}
然后,当我检查同义词地图时,我看到了这个
{
"@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"
}
]
}
但是,同义词似乎不起作用。例如,搜索迈克和迈克尔的结果并不相同?
我知道这是预览功能,但需要以下方面的帮助
a)一旦定义为同义词,我们是否应该在所有同义词变体中预期完全相同的结果和搜索分数
b)这些同义词可以应用于列级别(例如单独的名字而不是地址) - 或者它是否始终在整个文档中
c)如果我们有大量的同义词(超过1000) - 它是否会对性能产生影响?
答案 0 :(得分:3)
我是Azure搜索的Nate。首先回答问题:
a)是的,你应该。如果"比尔"和#34;威廉姆斯"被定义为同义词。搜索任何一个都应该产生相同的结果。
b)它总是在列级别。您使用名为' synonymMaps'的字段/列属性。指定要使用的同义词映射。请参阅"在索引定义中设置同义词映射"在https://azure.microsoft.com/en-us/blog/azure-search-synonyms-public-preview/中了解更多信息。
c)你的意思是一个单词超过1000个同义词?或同义词映射中的1000同义词规则?前者肯定会影响性能,因为搜索查询将扩展到1000个术语。实际上,您无法在规则中定义超过50个同义词。后者,同义词映射中的1000条规则不应影响性能,除非规则不断更新。
关于同义词不起作用的评论,根据您的问题,我想知道是否在索引定义中启用了同义词功能。你能检查一下吗?如果它不起作用,请随时给我发电子邮件至nateko@microsoft.com。
您在检索到的同义词地图中看到的无关新行字符可能已由您在上传时使用的http客户端插入。例如,一些http客户端,小提琴手和邮差,会在自动结束的行中插入换行符,这样您就不必自己动手了。
谢谢,
Nate