0

请帮助我忽略 Cloudant 查询中的重音敏感问题

我在网上找到了一种忽略大小写敏感的方法(?i),效果很好。但不适用于对口音敏感的情况。

这是我的 Cloudant 查询的一部分:

{
  "modelo": { 
     "$regex": "(?i)sábado" 
   }
}

谢谢!!

4

2 回答 2

0

就像提到的第一个评论者一样,您可能需要替换搜索中的字符。例如,您可以将搜索更改为这样的

{
  "$or": [
    {"modelo": {"$regex": "(?i)sábado"}},
    {"modelo": {"$regex": "(?i)sabado"}}
  ]
}

如果您可以控制存储在 Cloudant 中的数据,那么在进入的过程中替换重音字符可能会更容易。如果您需要原始值,则可以添加一个新字段进行搜索。例如,您可以设置modelosábado然后添加另一个字段,例如modelo_search并将值设置为sabado。然后,每当您执行搜索时,您都会使用该modelo_search字段并替换搜索字符串中的重音符号,如下所示:

{
  "modelo_search": { 
    "$regex": "(?i)sabado" 
  }
}
于 2017-10-09T03:57:26.913 回答
0

我找到了解决方案:只需更改要搜索相应元音的字符串中的任何元音。

var dat = "sábado"
var res = dat.replace(new RegExp(/[aáAÁ]/g), "[aáAÁ]");
于 2017-10-09T16:20:51.457 回答