在指定映射字符过滤器时使用正则表达式

Using regular expression while specifying mapping char filter

ElasticSearch 支持mapping char filter,其中可以指定一个键及其对应的值。我想在key中使用正则表达式。

我正在尝试的正则表达式基本上是捕获所有以 I 结尾的大写符号并将它们转换为以 l 结尾的字符串。所以这看起来像

ABCI => ABCl

I之前的字符串不固定,所以我在写正则表达式。

我已经将表达式的左侧部分计算为 [A-Z]+I 但我无法决定应该在右侧写什么以便我可以将字符串 ABC 捕获为嗯。

我的问题是我们可以在映射字符过滤器中使用正则表达式吗?如果是,那么我该如何编写相关的正则表达式(尤其是右侧部分)。

使用Pattern Replace Char Filter:

{
"settings": {
"analysis": {
  "analyzer": {
    "my_analyzer": {
      "tokenizer": "standard",
      "char_filter": [
        "my_char_filter"
      ]
    }
  },
  "char_filter": {
    "my_char_filter": {
     "type": "pattern_replace",
      "pattern": "([A-Z]+)(I)$",   ==> Patterm containg uppaer case characters ending with I
      "replacement": ""         =>  Replacing Group 1 with '1'
      }
     }
    }
   }
 }

希望对您有所帮助!!