省略词分词过滤器

省略词分词过滤器 #

省略词(Elision)分词过滤器用于从某些语言的单词中去除省略的字符。省略现象通常出现在像法语这样的语言中,在这些语言里,单词常常会发生缩合,并与后面的单词结合,常见的方式是省略一个元音字母,并用一个撇号来替代。

省略词分词过滤器已经在以下语言分词器中预先配置好了:加泰罗尼亚语/catalan、法语/french、爱尔兰语/irish和意大利语/italian

参数说明 #

自定义省略词分词过滤器可使用以下参数进行配置。

参数必需/可选数据类型描述
articles若未配置 articles_path 则为必需字符串数组定义当某些冠词或短词作为省略形式的一部分出现时,哪些应该被移除。
articles_path若未配置 articles 则为必需字符串指定在分析过程中应被移除的自定义冠词列表的路径。
articles_case可选布尔值指定在匹配省略形式时,该过滤器是否区分大小写。默认值为 false

参考样例 #

法语中默认的省略形式集合包括 l'm't'qu'n's'j'd'c'jusqu'quoiqu'lorsqu'puisqu'。你可以通过配置 french_elision 分词过滤器来更新这个集合。以下示例请求创建了一个名为 french_texts 的新索引,并配置了一个带有 french_elision 过滤器的分词器:

PUT /french_texts
{
  "settings": {
    "analysis": {
      "filter": {
        "french_elision": {
          "type": "elision",
          "articles": [ "l", "t", "m", "d", "n", "s", "j" ]
        }
      },
      "analyzer": {
        "french_analyzer": {
          "type": "custom",
          "tokenizer": "standard",
          "filter": ["lowercase", "french_elision"]
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "text": {
        "type": "text",
        "analyzer": "french_analyzer"
      }
    }
  }
}

产生的词元 #

使用以下请求来检查使用该分词器生成的词元:

POST /french_texts/_analyze
{
  "analyzer": "french_analyzer",
  "text": "L'étudiant aime l'école et le travail."
}

返回内容包含产生的词元

{
  "tokens": [
    {
      "token": "étudiant",
      "start_offset": 0,
      "end_offset": 10,
      "type": "<ALPHANUM>",
      "position": 0
    },
    {
      "token": "aime",
      "start_offset": 11,
      "end_offset": 15,
      "type": "<ALPHANUM>",
      "position": 1
    },
    {
      "token": "école",
      "start_offset": 16,
      "end_offset": 23,
      "type": "<ALPHANUM>",
      "position": 2
    },
    {
      "token": "et",
      "start_offset": 24,
      "end_offset": 26,
      "type": "<ALPHANUM>",
      "position": 3
    },
    {
      "token": "le",
      "start_offset": 27,
      "end_offset": 29,
      "type": "<ALPHANUM>",
      "position": 4
    },
    {
      "token": "travail",
      "start_offset": 30,
      "end_offset": 37,
      "type": "<ALPHANUM>",
      "position": 5
    }
  ]
}