You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Search使用microsoft.nl语言分析器的变音符号双向匹配问题

解决方案

核心思路是基于官方荷兰语分析器的处理逻辑,新增带变音符号折叠能力的自定义分析器,完全保留原分析器的分词、词干提取等能力的同时,实现所有变音符号的双向兼容。

具体操作步骤

  1. 在索引的配置中新增自定义分析器,复用微软官方荷兰语分词器和语言过滤器,额外加入asciifolding词元过滤器统一处理所有变音符号:
"analyzers": [
    {
        "@odata.type": "#Microsoft.Azure.Search.CustomAnalyzer",
        "name": "nl.microsoft_with_asciifolding",
        "tokenizer": "microsoft_language_tokenizer",
        "tokenFilters": [
            "microsoft_language_filter",
            "asciifolding",
            "lowercase"
        ],
        "parameters": {
            "language": "dutch"
        }
    }
]

这个配置和原生nl.microsoft分析器的唯一区别是新增了asciifolding,会自动把所有带变音符号的字符转换为对应的无重音ASCII字符,覆盖荷兰语所有变音场景,无需单独配置单词映射。
2. 修改目标字段的分析器配置,替换为新建的自定义分析器:

{
    "name": "Contents_nlnl",
    "type": "Edm.String",
    "facetable": false,
    "filterable": false,
    "key": false,
    "retrievable": false,
    "searchable": true,
    "sortable": false,
    "analyzer": "nl.microsoft_with_asciifolding",
    "indexAnalyzer": null,
    "searchAnalyzer": null,
    "synonymMaps": [],
    "fields": []
}

生效说明

修改分析器配置后需要重建索引,重新导入所有文档生成新的词元标记即可生效。生效后:

  • 文档录入时,不管内容带不带变音符号,都会统一转换为无重音形式再生成索引标记
  • 用户搜索时,不管搜索词带不带变音符号,也会统一转换为无重音形式再匹配索引,实现双向完全匹配
  • 原nl.microsoft分析器的分词、词干提取、停用词过滤等所有能力完全保留,没有兼容性问题

内容的提问来源于stack exchange,提问作者PaulVrugt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 00:09:02