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

如何在CosmosDB中实现忽略重音(变音符号)的不敏感查询

Cosmos DB实现忽略重音的模糊匹配方案

原生支持方案(推荐)

Cosmos DB原生支持字符串比较时忽略重音,无需额外改造数据,有两种实现方式:

1. 查询时指定比较规则

你可以直接在现有查询基础上增加比较规则参数,规则取值3代表同时忽略大小写和重音。
如果使用前缀匹配,更推荐用STARTSWITH函数,写法如下:

SELECT * 
FROM container_name
WHERE STARTSWITH(name, 'empresa', 3)

如果需要保留LIKE语法,写法如下:

SELECT * 
FROM container_name
WHERE name LIKE 'empresa%' WITH (COMPARE_RULE = 3)

上述两种写法都可以同时命中Émpresa 1和empresa 2两条记录,且可以正常走索引,无性能损耗。

2. 容器级配置默认比较规则

如果全容器的字符串查询都需要忽略重音和大小写,可以在创建容器时指定默认字符串比较策略,后续所有查询无需额外加参数就会生效:

  • 配置项开启IgnoreNonSpacingMarks(忽略重音)和IgnoreCase(忽略大小写)即可。

兼容旧版本的Workaround

如果你的Cosmos DB实例版本较低不支持原生比较规则,可以通过预存归一化字段的方式实现:

  • 写入数据时,新增一个如nameNormalized的额外字段,将原name字段去除重音、统一转为小写后存入该字段
  • 查询时直接对归一化字段做匹配即可:
SELECT * 
FROM container_name
WHERE nameNormalized LIKE 'empresa%'

该方案兼容性强、查询性能高,仅需要在写入数据时做一次预处理,额外占用少量存储空间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 15:39:02