Link Search Menu Expand Document Documentation Menu

模式分析器

pattern 分析器允许您定义一个自定义分析器,该分析器使用正则表达式 (regex) 将输入文本拆分为词元。它还提供了应用 regex 标志、将词元转换为小写以及过滤停用词的选项。

参数

pattern 分析器可以使用以下参数进行配置。

参数 必需/可选 数据类型 描述
模式 可选 字符串 用于将输入分词的 Java 正则表达式。默认值为 \W+
标志 (flags) 可选 字符串 一个字符串,包含以管道符分隔的 Java regex 标志,用于修改正则表达式的行为。
lowercase 可选 布尔型 是否将词元转换为小写。默认值为 true
停用词 可选 字符串或字符串列表 一个字符串,指定预定义的停用词列表(例如 _english_)或一个数组,指定自定义停用词列表。默认值为 _none_
停用词路径 可选 字符串 包含停用词列表的文件的路径(绝对路径或相对于配置目录的相对路径)。

示例

使用以下命令创建名为 my_pattern_index 且使用 pattern 分析器的索引

PUT /my_pattern_index
{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_pattern_analyzer": {
          "type": "pattern",
          "pattern": "\\W+",  
          "lowercase": true,                
          "stopwords": ["and", "is"]       
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "my_field": {
        "type": "text",
        "analyzer": "my_pattern_analyzer"
      }
    }
  }
}

生成的词元

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

POST /my_pattern_index/_analyze
{
  "analyzer": "my_pattern_analyzer",
  "text": "OpenSearch is fast and scalable"
}

响应包含生成的词元

{
  "tokens": [
    {
      "token": "opensearch",
      "start_offset": 0,
      "end_offset": 10,
      "type": "word",
      "position": 0
    },
    {
      "token": "fast",
      "start_offset": 14,
      "end_offset": 18,
      "type": "word",
      "position": 2
    },
    {
      "token": "scalable",
      "start_offset": 23,
      "end_offset": 31,
      "type": "word",
      "position": 4
    }
  ]
}
剩余 350 字符

有问题?

想贡献?