字符组分词器编辑

char_group 分词器会在遇到定义的字符集中的字符时将文本拆分为词项。 当需要简单的自定义分词并且使用 pattern 分词器 的开销不可接受时,它非常有用。

配置编辑

char_group 分词器接受一个参数

tokenize_on_chars

一个列表,其中包含要在其上对字符串进行分词的字符列表。 只要遇到此列表中的字符,就会启动一个新的词项。 这接受单个字符,例如 -,或字符组:whitespaceletterdigitpunctuationsymbol

max_token_length

最大词项长度。 如果看到的词项超过此长度,则会在 max_token_length 间隔处将其拆分。 默认为 255

示例输出编辑

response = client.indices.analyze(
  body: {
    tokenizer: {
      type: 'char_group',
      tokenize_on_chars: [
        'whitespace',
        '-',
        "\n"
      ]
    },
    text: 'The QUICK brown-fox'
  }
)
puts response
POST _analyze
{
  "tokenizer": {
    "type": "char_group",
    "tokenize_on_chars": [
      "whitespace",
      "-",
      "\n"
    ]
  },
  "text": "The QUICK brown-fox"
}

返回

{
  "tokens": [
    {
      "token": "The",
      "start_offset": 0,
      "end_offset": 3,
      "type": "word",
      "position": 0
    },
    {
      "token": "QUICK",
      "start_offset": 4,
      "end_offset": 9,
      "type": "word",
      "position": 1
    },
    {
      "token": "brown",
      "start_offset": 10,
      "end_offset": 15,
      "type": "word",
      "position": 2
    },
    {
      "token": "fox",
      "start_offset": 16,
      "end_offset": 19,
      "type": "word",
      "position": 3
    }
  ]
}