限制分词过滤器

限制分词过滤器 #

限制分词过滤器用于限制分词链通过的词元数量。

参数说明 #

限制分词过滤器可以使用以下参数进行配置。

参数必填/可选数据类型描述
max_token_count可选整数要生成的词元的最大数量。默认值为 1
consume_all_tokens可选布尔值(专家级设置)即使结果超过 max_token_count,也会使用来自词元生成器的所有词元。当设置此参数时,输出仍然只包含 max_token_count 指定数量的词元。不过,词元生成器生成的所有词元都会被处理。默认值为 false

参考样例 #

以下示例请求创建了一个名为 my_index 的新索引,并配置了一个带有限制过滤器的分析器:

PUT my_index
{
  "settings": {
    "analysis": {
      "analyzer": {
        "three_token_limit": {
          "tokenizer": "standard",
          "filter": [ "custom_token_limit" ]
        }
      },
      "filter": {
        "custom_token_limit": {
          "type": "limit",
          "max_token_count": 3
        }
      }
    }
  }
}

产生的词元 #

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

GET /my_index/_analyze
{
  "analyzer": "three_token_limit",
  "text": "Easysearch is a powerful and flexible search engine."
}

返回内容包含产生的词元

{
  "tokens": [
    {
      "token": "Easysearch",
      "start_offset": 0,
      "end_offset": 10,
      "type": "<ALPHANUM>",
      "position": 0
    },
    {
      "token": "is",
      "start_offset": 11,
      "end_offset": 13,
      "type": "<ALPHANUM>",
      "position": 1
    },
    {
      "token": "a",
      "start_offset": 14,
      "end_offset": 15,
      "type": "<ALPHANUM>",
      "position": 2
    }
  ]
}