Azure 搜索语言分析器和变音符号
Posted
技术标签:
【中文标题】Azure 搜索语言分析器和变音符号【英文标题】:Azure search Language analyzers and diacritics 【发布时间】:2021-10-30 19:16:51 【问题描述】:我们正在设置一个 azure 搜索索引,并且我们正在使用语言分析器,这似乎工作得很好。 (拆分单词,添加词干等)但是,我们遇到了变音符号(重音)的问题。
在荷兰语中,patient
写作patiënt
。将包含patiënt
的文本添加到设置为microsoft.nl
的字段时,它还会添加patient
的标记。因此,如果我搜索 patient
(不带 ë),它也会找到此文档。
当情况逆转时,问题就出现了。如果有人在文档中键入patient
(因为他懒得添加ë),则标记器不会添加患者标记。当有人现在搜索患者时,找不到该文档。
对此的正确解决方案是什么?我希望是否在搜索文本中添加变音符号并不重要。我一直在寻找自定义分析器以完全删除变音符号,但它们似乎与语言分析器不兼容
澄清一下:我正在为所有带有变音符号的情况寻找解决方案,而不仅仅是这个特定的单词
当前字段定义:
"name": "Contents_nlnl",
"type": "Edm.String",
"facetable": false,
"filterable": false,
"key": false,
"retrievable": false,
"searchable": true,
"sortable": false,
"analyzer": "nl.microsoft",
"indexAnalyzer": null,
"searchAnalyzer": null,
"synonymMaps": [],
"fields": []
【问题讨论】:
【参考方案1】:您可以使用带有显式映射的同义词映射 https://docs.microsoft.com/en-us/azure/search/search-synonyms#explicit-mapping 请参阅下面的示例
"name": "patient",
"format": "solr",
"synonyms": "patient=> patiënt"
【讨论】:
是的,这只会解决这个特定的情况,而不是所有带有变音符号的情况。我已经更新了我的问题以澄清以上是关于Azure 搜索语言分析器和变音符号的主要内容,如果未能解决你的问题,请参考以下文章
LUA:如何正确读取带有重音字母和变音符号的 UFT8 文件名和路径?
BLE MIDIMIDI 时间标志分析 ( 音符速度设置事件 | 拍号设置事件 | 基本时间 - 每个四分音符有多少 tick 或 pulse | 节拍时值计算 | 小节时值计算 )