阿拉伯语归一化过滤器(Arabic Normalization)

阿拉伯语归一化过滤器 #

arabic_normalization 词元过滤器对阿拉伯语文本进行正字法归一化,将各种书写变体统一为标准形式,提高搜索的召回率。

归一化规则 #

原始形式归一化结果说明
\u0623 \u0625 \u0622 (带 hamza 的 alef)\u0627 (bare alef)统一 alef 变体
\u0629 (taa marbuta)\u0647 (haa)统一词尾形式
\u064e \u064f \u0650 \u064b \u064c \u064d (harakat)删除移除变音符号
\u0640 (tatweel/kashida)删除移除装饰性延长符

使用示例 #

PUT my-arabic-index
{
  "settings": {
    "analysis": {
      "filter": {
        "arabic_norm": {
          "type": "arabic_normalization"
        }
      },
      "analyzer": {
        "my_arabic": {
          "type": "custom",
          "tokenizer": "standard",
          "filter": ["lowercase", "arabic_norm"]
        }
      }
    }
  }
}

测试效果 #

GET /_analyze
{
  "tokenizer": "standard",
  "filter": ["arabic_normalization"],
  "text": "\u0625\u0628\u0631\u0627\u0647\u064a\u0645"
}

参数 #

此过滤器不接受任何参数。

在语言分析器中的位置 #

阿拉伯语分析器 内置了此过滤器,其分析链为:

standard 分词器 → lowercasearabic_normalizationdecimal_digitstop(阿拉伯语) → arabic_stemmer