简单模式拆分分词器
simple_pattern_split
分词器使用正则表达式将文本拆分为标记。正则表达式定义了用于确定拆分文本的模式。文本中任何匹配的模式都用作分隔符,分隔符之间的文本成为一个标记。当您想定义分隔符并根据模式对文本的其余部分进行分词时,请使用此分词器。
该分词器仅使用输入文本中匹配的部分(基于正则表达式)作为分隔符或边界,将文本拆分为术语。匹配的部分不包含在结果术语中。例如,如果分词器配置为在点字符 (.
) 处拆分文本,并且输入文本是 one.two.three
,那么生成的术语是 one
、two
和 three
。点字符本身不包含在结果术语中。
使用示例
以下示例请求创建一个名为 my_index
的新索引,并使用 simple_pattern_split
分词器配置一个分析器。该分词器配置为在连字符处拆分文本
PUT /my_index
{
"settings": {
"analysis": {
"tokenizer": {
"my_pattern_split_tokenizer": {
"type": "simple_pattern_split",
"pattern": "-"
}
},
"analyzer": {
"my_pattern_split_analyzer": {
"type": "custom",
"tokenizer": "my_pattern_split_tokenizer"
}
}
}
},
"mappings": {
"properties": {
"content": {
"type": "text",
"analyzer": "my_pattern_split_analyzer"
}
}
}
}
生成的词元
使用以下请求检查使用该分析器生成的词元
POST /my_index/_analyze
{
"analyzer": "my_pattern_split_analyzer",
"text": "OpenSearch-2024-10-09"
}
响应包含生成的词元
{
"tokens": [
{
"token": "OpenSearch",
"start_offset": 0,
"end_offset": 10,
"type": "word",
"position": 0
},
{
"token": "2024",
"start_offset": 11,
"end_offset": 15,
"type": "word",
"position": 1
},
{
"token": "10",
"start_offset": 16,
"end_offset": 18,
"type": "word",
"position": 2
},
{
"token": "09",
"start_offset": 19,
"end_offset": 21,
"type": "word",
"position": 3
}
]
}
参数
simple_pattern_split
分词器可以通过以下参数进行配置。
参数 | 必需/可选 | 数据类型 | 描述 |
---|---|---|---|
模式 | 可选 | 字符串 | 用于将文本拆分为标记的模式,使用 Lucene 正则表达式指定。默认为空字符串,这将返回输入文本作为一个标记。 |